nic*_*ric 0 asp.net-core-2.0 .net-core-2.0
我有2个应用程序,一个控制台一个Web API,都是.net core v2.0。两者都有相同的问题。
我曾经通过源文件运行我的应用程序。我在Linux机器上构建和运行它们。一切都很好,一切都很棒,但是现在我正在通过发布输出运行相同的应用程序。
现在,它无法正常运行,因为该应用程序无法读取appsettings.json。
configuration["Settings:Port"] != null
? int.Parse(configuration["Settings:Port"]) //i should be getting this - 1234
: default(int) //but instead i got this - 0
Run Code Online (Sandbox Code Playgroud)
我损坏了appsettings.json文件,希望看到一个异常,但是什么也没有。没什么。我检查了几次文件,只是因为绝望而修改了几次文件。没有。什么都没发生,什么都没有改变。
我尝试了调试构建,尝试了发布构建,尝试更改了该文件的构建操作……尝试了,尝试了…………什么都行不通,我也不知道为什么。
如您所料,我需要一些建议。谢谢你们。
编辑:
我如何使用/读取配置文件:
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true, true).Build();
Run Code Online (Sandbox Code Playgroud)
问题是我从中运行应用程序的路径。
我正在运行命令以从根(/)启动应用程序。应用程序运行正常,但显然找不到appsettings.json文件。
我尝试从Project路径启动该应用程序,因此我将其CD到Project目录中,运行命令,一切恢复正常。
详细说明在这里:
当我运行上面提到过的那些应用程序时,我曾经使用cd进入其目录并执行“ dotnet run”。
cd /blabla/etcetc
dotnet run
Run Code Online (Sandbox Code Playgroud)
但是,在发布它们之后,我无法使用相同的命令。我必须指定它为dll。然后我想出了,我可以直接运行它们而无需CD-进入它们的目录。
dotnet /blabla/etcetc/my.project.dll
Run Code Online (Sandbox Code Playgroud)
这就是问题所在。现在我不是这样做,而是这样做。
cd /blabla/etcetc
dotnet my.project.dll
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |