簡體   English   中英

在構建配置中設置aspnetcore_environment

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM