Blazor WASM项目如何通过dotnet publish发布多份web.config文件
Blazor WASM 发布web.config及转换文件配置方案
1. 修改项目配置文件(.csproj)
默认dotnet publish会自动合并web.config转换规则,且默认不输出独立的转换配置文件,需要在项目的.csproj文件中新增以下配置:
<Project> <!-- 原有配置保留,新增以下节点 --> <ItemGroup> <!-- 配置主web.config发布规则 --> <Content Update="web.config"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </Content> <!-- 配置Release版本转换文件发布规则 --> <Content Update="web.Release.config"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </Content> </ItemGroup> <PropertyGroup> <!-- 禁用publish默认自动合并web.config转换的行为,保留独立转换文件 --> <IsWebConfigTransformDisabled>true</IsWebConfigTransformDisabled> </PropertyGroup> </Project>
如果是前后端分离托管的Blazor WASM项目(包含Server宿主项目),需要将上述配置加在Server项目的.csproj中,web.config和转换文件也放在Server项目根目录。
2. 执行dotnet publish命令
不需要添加额外特殊参数,正常指定Release配置和输出目录即可:dotnet publish -c Release -o ./publish
命令执行完成后,./publish目录下会同时存在独立的web.config和web.Release.config文件,不会被提前合并。
3. Azure DevOps部署任务适配
在Azure DevOps的IIS Web部署任务中,勾选启用XML转换选项,部署任务会自动识别同目录下的web.{配置名}.config文件,对主web.config执行转换操作,不需要额外指定转换文件路径。
如果需要支持多环境转换,只需要仿照web.Release.config的配置规则,在csproj中添加对应环境的配置文件发布规则即可。
内容的提问来源于stack exchange,提问作者EddyHaigh
相关产品推荐
相关产品推荐

