升级后,似乎所有我的.net核心控制台应用程序在调试时都会出错路径。
我有以下代码
private static void ConfigureServices(IServiceCollection serviceCollection)
{
// build configuration
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false)
.Build();
}
哪种方法可以正常工作,但现在我升级了,我收到以下错误
System.IO.FileNotFoundException: 'The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'D:\projects\myproject\bin\Debug\netcoreapp2.0\appsettings.json'.'
我知道我可以将appsettings.json复制到此路径,但我之前从未这样做过,在升级之前完全没问题。
答案 0 :(得分:2)
我建议删除.SetBasePath(Directory.GetCurrentDirectory())
行。 SetBasePath
方法现在是可选的,如果未调用then we infer the base path from application base。
关于你的错误。在dotnet中There was a fix,改变行为:
将默认工作目录更改为输出文件夹而不是项目根目录。
在VS更新中,您已经安装了最新版本的.NET Core SDK。所以你需要立即将appsettings.json复制到输出文件夹。
答案 1 :(得分:0)
Startup已经从1.x稍微改为2.0,你不再使用配置构建器,它主要在幕后完成,但是你可以在Program.cs中声明你的appsettings.json
文件
以下是操作方法:https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/#add-configuration-providers
答案 2 :(得分:0)
试试这个:
string Path = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), @"..\..\"));
只需从bin中移回两个目录。
答案 3 :(得分:0)
将appsettings.json文件属性“复制到输出目录”更改为“复制所有” 还应将appsettings.json文件的“复制到输出目录”属性设置为“如果更新则复制”,以便应用程序能够访问它。