我刚刚遇到了asp.net core中web.config转换的问题。
有两个文件:基本的web.config和web.prod-zone-a.config。我的目标是在发布项目时使用web.prod-zone-a.config内部的转换。 我在.csproj中拥有以下“prod-zone-a”配置设置:
<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>
<Configuration>prod-zone-a</Configuration>
</PropertyGroup>
web.prod-zone-a.config看起来像:
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore>
<environmentVariables xdt:Transform="Replace">
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="prod-zone-a" />
</environmentVariables>
</aspNetCore>
</system.webServer>
我尝试通过两个命令来发布:
dotnet msbuild /t:Publish /p:OutputPath=c:\delivery /p:Configuration=prod-zone-a
并且
dotnet publish --configuration prod-zone-a --output c:\delivery
但是在输出时,web.config文件不会应用任何转换,仅使用默认值。我是否错过了配置或命令执行中的某些内容?