C#-ASP.NET Core專案在dotnet publish時自動切換不同環境web.config
因為每天都要將ASP.NET Core專案包到6個環境,
因此如果能根據不同環境切換不同web.config,就可以省去不少人工介入。
找到這個連結,其中我用的是「環境」設定方式的web.config:
以下舉例怎麼設定:
今天在productionA的環境,需要在web.config中加一個只有該環境需要的設定,
step 1: 我會在原本的ASP.NET Core專案中,除了通用的web.config,在相同位置再新增「web.productionA.config」,這個檔案需用XDT語法新增需要的設定,這邊舉例重新導向(然後也會加上環境變數)
web.productionA.config內容可以是:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<aspNetCore>
<!-- 加入環境變數 -->
<environmentVariables xdt:Transform="Insert">
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="ProductionA" />
</environmentVariables>
</aspNetCore>
<httpErrors xdt:Transform="InsertIfMissing">
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="https://abc.com" responseMode="Redirect" />
</httpErrors>
</system.webServer>
</configuration>
step 2: 然後在包版時,我是使用:直接從命令列指定,透過命令列傳遞 EnvironmentName,例如:
dotnet publish --configuration Release /p:EnvironmentName=ProductionA
web.config可以寫上每個環境共用的設定,個別環境的web.config寫上該環境需要的設定就好
然後可以有n個不同環境的web.config
留言
張貼留言