Ale*_* G. 14 c# asp.net configuration web-deployment asp.net-core
我有三个配置文件,每个环境一个:
如果我将ASPNETCORE_ENVIRONMENT设置为dev,我会收到一个运行时异常,抱怨无法找到appsettings.dev.json.我尝试添加
"copyToOutput": [
"appsettings.dev.json"
]
Run Code Online (Sandbox Code Playgroud)
到buildOptions
project.json中的部分,但它似乎没有任何影响.
有没有其他方法可以强制appsettings.dev.json被复制到输出目录?
在解决方案资源管理器中,右键单击要复制到输出的文件(在您的情况下appsettings.dev.json
)并点击Properties,在 Properties 窗口窗格中将Copy To Output Directory选项设置为Copy Always。通过这样做,每次构建项目时,您的文件都会被复制到输出目录(您的项目 bin 或发布目录,具体取决于您的构建配置文件)
就我而言,appsettings.json没有被复制用于单元测试.
如果右键单击该文件并选择" 属性",则会出现此对话框.将构建操作更改为嵌入式资源,该文件将被复制到bin文件夹以供单元测试使用.
如果要将文件复制到输出文件夹,可以将其添加到 csproj 文件中:
<ItemGroup>
<None Update="appsettings.IntegrationTests.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这适用于 dotnet build/test/run vscode & visual studio
您是否设置了放置appsettings.dev.json的基本路径?
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
Run Code Online (Sandbox Code Playgroud)
在"project.json"中包含这个对我有用:
...
"publishOptions": {
"include": [
"wwwroot",
...
"appsettings.json",
"appsettings.Development.json",
...
]
},
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10498 次 |
最近记录: |