小编Viv*_*Dev的帖子

ASP.NET Core 6+ 如何在启动过程中访问配置

在早期版本中,我们有 Startup.cs 类,并在Startup文件中获取配置对象,如下所示。

public class Startup 
{
    private readonly IHostEnvironment environment;
    private readonly IConfiguration config;

    public Startup(IConfiguration configuration, IHostEnvironment environment) 
    {
        this.config = configuration;
        this.environment = environment;
    }

    public void ConfigureServices(IServiceCollection services) 
    {
        // Add Services
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
    {
        // Add Middlewares
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,在 .NET 6 及更高版本(使用 Visual Studio 2022)中,我们看不到Startup.cs类。看来它的日子屈指可数了。那么我们如何获取配置(IConfiguration)和托管环境(IHostEnvironment)等对象

我们如何获取这些对象,也就是说从 appsettings 读取配置?目前,Program.cs 文件如下所示。

using Festify.Database;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

builder.Services.AddDbContext<FestifyContext>();


//////////////////////////////////////////////// …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core .net-6.0 .net-7.0

255
推荐指数
7
解决办法
25万
查看次数

在jupyter笔记本中将代码单元更改为markdown单元格的快捷键

有点傻但是,有一个快捷键可以将代码单元格更改为markdown单元格.要放置一个markdown单元格,我必须插入一个单元格,然后转到工具栏菜单(主菜单栏下方),然后选择markdown而不是代码.

jupyter-notebook

51
推荐指数
2
解决办法
2万
查看次数

tsc编译器和VS Code的语言服务之间的版本不匹配

我刚刚开始使用Visual Studio Code,当我创建一个名为index.html的新文件时,我会看到此警告消息

全局安装的tsc编译器(1.0.3.0)与VS Code的语言服务(1.8.10)之间的版本不匹配

有人可以指导我,我必须做些什么来解决这个问题.

这是严重还是我可以忽略.我用Google搜索但无法获得更多信息

谢谢

在此输入图像描述

visual-studio-code

43
推荐指数
6
解决办法
1万
查看次数

Visual Studio Code中的欢迎页面如何获取它

我刚刚下载了Visual Studio Code并开始使用它.

你管视频在这里推荐快速浏览视频.

所以问题是如何在Visual Studio代码上看到欢迎页面.我什么时候打开,我没有看到它.可能在您第一次打开时,会显示此信息.但是一旦你关闭,我该如何重新打开它?

visual-studio-code

27
推荐指数
6
解决办法
1万
查看次数

回滚 EF Core 迁移并不能完全恢复模型快照

我正在使用 EF Core 6.0.0-rc.2.21480.5。

我添加了一个空迁移,只是运行命令,Add-Migration ShouldBeEmpty而不对模型进行任何更改。

有必要检查此类空迁移,以确保正确合并从其他开发人员工作中提取的迁移。

正如所料,上台阶和下台阶都是空的。

public partial class ShouldBeEmpty : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    { }

    protected override void Down(MigrationBuilder migrationBuilder)
    { }
}
Run Code Online (Sandbox Code Playgroud)

模型快照文件也没有改变。

现在我使用删除迁移命令恢复Remove-Migration。新创建的文件 ShouldBeEmpty 会按预期作为回滚的一部分被删除。但当我注意到模型快照文件时,它已签出,当我进行比较时,我看到了这一点。

Ef Core 空迁移回滚问题

请注意以下事项。

b.ToTable("Sita", (string)null);
Run Code Online (Sandbox Code Playgroud)

所以当我回滚时它并不完全相同。(string)null 还被传递到 ToTable 方法调用。它似乎没有造成任何问题,但只是想知道我在这里错过了什么吗?

我注意到我的 csproj 文件启用了 nullable 。我禁用了它并尝试过,但这没有任何区别。

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

entity-framework-core

20
推荐指数
1
解决办法
1631
查看次数

Visual Studio 代码显示错误:不允许属性阶段,不允许属性参数

我从 Azure DevOps yaml 管道创建了可重用模板。您在下面看到的 build.yaml 就是这样的模板之一。

当我推送代码时,管道在 Azure DevOps 上成功运行,没有任何抱怨。然而,当我将鼠标悬停在参数或阶段上时,Visual Studio Code 会发出抱怨。

Property Stages is not allowed 
Property parameters is not allowed
Run Code Online (Sandbox Code Playgroud)

我这里缺少任何设置吗?为什么 VS Code 显示错误,而 azure devops 却成功运行?

VS Code 显示不允许属性参数错误

VS Code 显示不允许属性阶段错误

有趣的是,我在同一目录中有另一个模板,它没有显示任何此类错误消息。我缺少什么?我重新启动vs code,还是一样。

VS Code 使用另一个 yaml azure devops 模板没有显示错误

visual-studio-code azure-devops azure-pipelines

15
推荐指数
1
解决办法
1万
查看次数

docker镜像层id是如何导出的

尝试了解 docker 镜像层 id 是如何获得的。

\n

在基于 Linux 的虚拟机上,我按如下方式提取 ubuntu 20.04 映像。

\n
\n

docker拉ubuntu:20.04

\n
\n

然后我将其保存为 tar 文件,然后将其解压缩。

\n
\n

docker 保存 ubuntu:20.04 > ubuntu2004.tar
\ntar -xvf ubuntu2004.tar

\n
\n

我已将一个文件夹安装到我的 VM,因此现在我在 Windows 计算机上看到提取的 tar,如下所示。

\n

Docker层结构

\n

您可能知道这 4 个文件夹包含图像的 4 个图层。看起来文件夹的长名称的 guid 是图层的 id。在这些文件夹中,我们可以看到一个 json 文本文件,其中有一个 json 对象。该 Json 对象也具有相同的图层 ID。所以id是1c87ad44cc6b364480a5340ab1050b8dfb1691ed2abc85a1dbc3ee2fb5f2cf06

\n

问题:这些 id 是如何获得的?

\n

下面总结一下我在这方面所做的研究。

\n
    \n
  1. 一篇文章说它们是随机生成的。
  2. \n
\n
\n

用于存储图层内容的 diff 目录现在以随机生成的“缓存 ID”命名,并且 Docker 引擎维护图层与其缓存 ID 之间的链接,以便知道在哪里定位图层的位置磁盘上的内容。

\n
\n

我启动了多个虚拟机,提取了相同的 ubuntu:20.04 …

docker

14
推荐指数
1
解决办法
2587
查看次数

.NET 6 及更高版本中的 using 语句/指令在哪里

我已经开始使用 Visual Studio 2022 Preview 几天了。

我第一次震惊,没有 Startup.cs。没关系,稍微阅读一下,我知道启动已被删除。

今天又挨了一巴掌。我没有看到任何 using 语句。这里是。

我刚刚创建了一个全新的 .NET 6 Web 应用程序,当我将鼠标悬停在 WebApplication 类上时,我意识到它位于 Microsoft.AspNetCore.Builder 命名空间中。生成的 Program.cs 类如下所示。

ASP.NET core 6 Web 应用程序中的 Program.cs 类

那么using Microsoft.AspNetCore.Builder;声明在哪里呢?

有什么魔力?为什么.net 日益变得神秘?

完整的 Program.cs 文件如下。

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting(); …
Run Code Online (Sandbox Code Playgroud)

c# c#-9.0 .net-6.0 c#-10.0

14
推荐指数
1
解决办法
1万
查看次数

docker-compose 命令中 -p, --project-name 选项的用途是什么

docker-compose 命令中 -p 或 --project-name 选项的用途是什么?

它的用例是什么?

我是新手,还没有开始使用 docker 网络。docker 网络中是否使用了 --project-name ?

当我在 Visual Studio 2019 中添加 docker 支持时,Visual Studio 会运行​​一些 docker compose 命令,如下所示。其中每个都有一个 -p 选项。我对此很好奇。

docker-compose  -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi config
docker-compose  -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi build
docker-compose  -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi up -d --no-build --force-recreate --remove-orphans
Run Code Online (Sandbox Code Playgroud)

我已经在这里看到了 docker 文档,也看到了这个,但无法从那里得到太多信息。

docker docker-compose

12
推荐指数
1
解决办法
9926
查看次数

嵌套 .NET Core appsettings.json appsettings.development.json 和 appsettings.release.json

我有两个 ASP.NET Core 控制台应用程序。

第一个有 appsettings json 文件,如下所示。

appsettings json 文件嵌套

正如您所看到的,它们嵌套得很好。

第二个核心项目也是控制台项目。我添加了 appsettings json 文件,但它们是嵌套的。

我缺少什么

appsettings json 文件未嵌套

asp.net-core asp.net-core-3.1

11
推荐指数
2
解决办法
2763
查看次数