Web.config转换在Visual Studio 22中不起作用

ecbunoof  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(255)

我正在尝试在VS 2022中使用WebForms应用程序进行Web.config转换。目标是在构建时启用转换。
我遵循了以下指南(以及其他指南):https://gist.github.com/EdCharbeneau/9135216
我的.csproj看起来像这样:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
  <Target Name="AfterBuild">
    <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
  </Target>

这是因为没有显示错误(例如说它找不到路径)。$(VisualStudioVersion)因此正确地解析为“17.0”。
解决方案资源管理器中存在以下文件:

Web.config(几乎)为空,而Web.Base.config包含实际的配置。
问题:当我构建项目时,Web.config没有被覆盖,应用程序最终没有配置。我已经阅读了关于这个主题的多个指南和问题,但是我没有发现我的设置有任何问题。
有人知道为什么从Web.base.config到Web.config的转换不起作用吗?

8cdiaqws

8cdiaqws1#

我在几个项目中使用了以下代码,它似乎在Visual Studio 2022中仍然有效。我有一个Web.Base.config(和配置),我在其中设置了默认值。然后,我为每个环境添加了一个配置和一个Web.{ConfigurationName}.config。在生成和发布期间,它会用配置中选择的内容覆盖Web.config文件。

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Web_config_AfterBuild" AfterTargets="AfterBuild" Condition="Exists('Web.$(Configuration).config')">
<TransformXml Source="Web.config" Destination="$(OutputPath)Web.config" Transform="Web.$(Configuration).config" />

我有几个进口的,但不确定哪一个是那个用的。

相关问题