[英]Set aspnetcore_environment within build configuration
我有簡單的asp.net核心項目。 我想通過TeamCity將其部署到IIS。 問題是我在發布項目時無法設置ASPNETCORE_ENVIRONMENT。 我的目標是使用默認行為來加載appsettings文件:
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
我使用.csproj而不是project.json和Web.config相關的配置部分如下所示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'prod-zone-a|AnyCPU' ">
<IntermediateOutputPath>obj\Debug\netcoreapp1.1</IntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<DefineConstants>TRACE;DEBUG;NETCOREAPP1_1</DefineConstants>
</PropertyGroup>
發布執行如下:
dotnet publish --configuration prod-zone-a --output <some-dir>
此外,有必要在IIS上發布具有不同配置的多個站點:prod-zone-a,prod-zone-b等(對應的appsettings。{env.EnvironmentName} .json也看起來不同)
我該如何實現這樣的想法? 或者我可能應該拋出這個想法,並采取另一種方式?
更新:
根據MS docs,我為TeamCity添加了單獨的構建步驟(powershell命令):
$Env:ASPNETCORE_ENVIRONMENT = "prod-zone-a"
但它不起作用。
我找到的唯一方法(與此問題完全不同)是以這種方式使用web.config轉換(另一個關於SO的問題)
主要原因是,不僅需要使用必要的ASPNETCORE_ENVIRONMENT值發布項目,而且IIS上的應用程序運行時也需要此值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.