提问人:Bojan Nedeljkovic 提问时间:11/15/2023 最后编辑:Bojan Nedeljkovic 更新时间:11/15/2023 访问量:29
Web 配置转换失败
Web config transformation fails
问:
我们有一个 Web 项目 asp.net 我们正在将其迁移到具有集中式 nuget 包管理的 .NET SDK 样式项目。
我们正在使用的模板是,我们有一个 Web.Config 文件,其中包含三个转换(调试、发布、测试)。“生成操作”设置为“内容”,并将“复制到输出目录”设置为“无”。<Project Sdk="MSBuild.SDK.SystemWeb/4.0.88">
VS build 工作正常,但是当我们尝试发布版本时,我们会收到以下消息:
PreTransformWebConfig:
Found The following for Config tranformation:
Web.config, Web.config
Skip copying Web.config to ...\Release\TransformWebConfig\original\W
eb.config, File ...\Release\TransformWebConfig\original\Web.config i
s up to date
构建失败,并显示:
Transforming Source File: ...\Web.config;Web.config
C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publi
shing.targets(1552,5): error : Could not open Source file: Could not find file '...\Web.config;Web.config'. [...Web.API.csproj]
构建命令:
msbuild /p:configuration=release /p:DeployOnBuild=true /p:DebugType=None /p:SkipInvalidConfigurations=true /p:WarningLevel=0
如何解决此问题?这是一个 .net 框架项目,能够转换 web.config 对我们来说非常重要。
答:
1赞
Jens Schmidt
11/30/2023
#1
当项目迁移到 SDK 样式时,会发生这种情况,同时保留显式内容项。
修复:添加或删除显式项。<EnableWebFormsDefaultItems>false</EnableWebFormsDefaultItems>
原答案抄自:https://github.com/CZEMacLeod/MSBuild.SDK.SystemWeb/issues/60
0赞
Bojan Nedeljkovic
12/8/2023
#2
最后,我们遇到了CSPROJ文件本身的一些混乱......对我们有用的是:
<ItemGroup>
<None Include="Web.Debug.config">
<IsTransformFile>true</IsTransformFile>
<DependentUpon>Web.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Web.Release.config">
<IsTransformFile>true</IsTransformFile>
<DependentUpon>Web.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Web.Test.config">
<IsTransformFile>true</IsTransformFile>
<DependentUpon>Web.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
</ItemGroup>
.....
<ItemGroup>
<Content Update="Web.config">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<TransformOnBuild>true</TransformOnBuild>
</Content>
<Content Update="Web.Debug.config">
<IsTransformFile>true</IsTransformFile>
<DependentUpon>Web.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="Web.Release.config">
<IsTransformFile>true</IsTransformFile>
<DependentUpon>Web.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
</ItemGroup>
评论