标签: .net-6.0

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万
查看次数

发布错误:发现多个具有相同相对路径的发布输出文件

当我发布 ABP 项目时,出现以下错误:

C:\Program Files\dotnet\sdk\6.0.100-rc.1.21458.32\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets(112,5): error NETSDK1152: Found multiple publish output files with the same relative path: 

D:\Github\volo\abp\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\compilerconfig.json,
D:\Github\volo\abp\bookstore\src\Acme.BookStore.Theme\compilerconfig.json, 

D:\Github\volo\abp\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\package.json, 
D:\Github\volo\abp\bookstore\src\Acme.BookStore.Web\package.json. 

D:\Github\volo\abp\bookstore\src\Acme.BookStore.Web\Acme.BookStore.Web.csproj
Run Code Online (Sandbox Code Playgroud)

c# publish azure .net-6.0

202
推荐指数
7
解决办法
13万
查看次数

如何在Asp.net core 6 Program.cs文件中使用appsettings.json

我正在尝试访问我的 Asp.net core v6 应用程序 Program.cs 文件中的 appsettings.json,但在此版本的 .Net 中,Startup 类和 Program 类合并在一起,并且 using 和 another 语句被简化并从 Program 中删除。CS。在这种情况下,如何访问 IConfiguration 或如何使用依赖注入?

代码

这是 Asp.net 6 为我创建的默认 Program.cs

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost:6379";
});

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new() { Title = "BasketAPI", Version = "v1" });
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "BasketAPI v1"));
}
app.UseHttpsRedirection(); …
Run Code Online (Sandbox Code Playgroud)

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

161
推荐指数
9
解决办法
23万
查看次数

.NET 6 中缺少 Startup.cs 类

我在 .NET 5 中创建了 REST API,一切都运行良好,但最近我转移到 .NET 6 并意识到不存在startup.cs 类。由于没有startup.cs,如何在.NET 6 中添加数据库上下文?

.net asp.net-core webapi .net-6.0

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

错误 CS8773:从 net6.0 降级到 net5.0 后,“功能‘全局使用指令’在 C# 9.0 中不可用”

我有一个最初是为 .NET 6 创建的项目,但后来我需要将其降级到 .NET 5。我在项目属性中更改了目标框架并尝试编译。结果我收到了一堆错误:

GlobalUsings.g.cs(2,1,2,29): error CS8773: Feature 'global using directive' is not available in C# 9.0. Please use language version 10.0 or greater.
Run Code Online (Sandbox Code Playgroud)

文件 GlobalUsings.g.cs 是自动创建的,并且每次编译后都会重新出现。

c# visual-studio .net-core .net-5 .net-6.0

100
推荐指数
4
解决办法
5万
查看次数

VS 2022 - 转换为所有文件中的文件范围命名空间

我正在将我的项目转换为 .NET 6,并且我想在任何地方使用文件作用域命名空间。但转换工具仅存在于编辑器中。

文件范围的命名空间转换

有没有人发现是否有一种方法可以同时在解决方案中的所有文件中运行此编辑器功能?(貌似Rider有这个功能)

.net c# .net-6.0 visual-studio-2022 c#-10.0

96
推荐指数
4
解决办法
3万
查看次数

.NET 6.0 C#“新控制台模板”-如何读取 CLI 参数?

现在 .NET 6.0 已经发布,默认 CLI 项目模板的彻底更新似乎是缺少熟悉的样板文件,被简化为以下内容:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Run Code Online (Sandbox Code Playgroud)

尚不清楚(到目前为止我一直在尝试查找文档,但无济于事)是如何访问传递给可执行文件的入口点类的命令行参数?

c# command-line-interface .net-6.0 visual-studio-2022

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

资产文件project.assets.json没有“net6.0”的目标 - VS2022

就在几天前,更新到 Visual Studio Community 2022 v17.2(从 v17.1.6)后出现此错误:

错误 NETSDK1005 资产文件“C:.........XXXXXX.Web\obj\project.assets.json”没有“net6.0”的目标。确保恢复已运行并且您已将“net6.0”包含在项目的 TargetFrameworks 中。XXXXXX.Web C:\Program Files\dotnet\sdk\6.0.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 267

  • 卸载与 VS2022 + 安装程序相关的所有内容
  • 重新启动
  • Fresh Git 克隆了我正在处理的项目(我在几台计算机上工作,所有计算机都装有 Win 10 并且都具有最新更新,这是唯一出现此问题的 VS 安装)
  • 重新安装 VS 2022 v17.2(使用 .NET 6.0,常规安装)

.csproj 文件已准备就绪:

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
    <IsPackable>false</IsPackable>
    <SpaRoot>ClientApp\</SpaRoot>
    <DefaultItemExcludes>$(DefaultItemExcludes);(SpaRoot)\**\node_modules\**;</DefaultItemExcludes>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

在构建或重建之前始终删除“bin”和“obj”文件夹......

无法摆脱编译,并且总是收到 NETSDK1005 错误...

PS - 已检查问题70711153

.net-6.0 visual-studio-2022

89
推荐指数
8
解决办法
9万
查看次数

.NET6 和日期时间问题。无法将 Kind=UTC 的 DateTime 写入 PostgreSQL 类型“不带时区的时间戳”

我有共同的问题。

无法将 Kind=UTC 的 DateTime 写入 PostgreSQL 类型“不带时区的时间戳”

我想启用旧版时间戳行为,如下所示: https: //github.com/npgsql/doc/blob/main/conceptual/Npgsql/types/datetime.md/

public MyDbContext(DbContextOptions<MyDbContext> contextOptions) : base(contextOptions)
        {
            AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
            AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
        }
Run Code Online (Sandbox Code Playgroud)

但不起作用。我仍然遇到同样的错误。

我做错了什么。为什么遗留行为不起作用?

c# npgsql .net-6.0

87
推荐指数
8
解决办法
12万
查看次数

Visual Studio 2019 不显示 .NET 6 Framework

我一直在努力将 ASP.NET Core Web API 项目的目标框架更改为 .NET 6,该项目是使用目标框架 .NET 5 启动的。我已经尝试了一些选项,但找不到列出的 .NET 6 Framework在目标下拉列表中。

  1. 我正在使用 Microsoft Visual Studio Enterprise 2019 版本 16.11.3。
  2. 我已经安装了.NET 6.0.0-rc.2.21480.5。这是通过 dotnet --version 验证的。
  3. 启用“使用 .NET Core SDK 预览”,并重新启动程序。
  4. 多次重新启动工作站,但仍然没有成功。

visual-studio asp.net-core asp.net-core-webapi .net-6.0

78
推荐指数
6
解决办法
16万
查看次数