所以,我的结构在我的root中有一个web.config,在一个名为Config的子文件夹中有一个web.config。我想在构建时转换根web.config。我知道这可以实现,但我不知道如何。
我在另一个没有帖子或预构建操作的项目中看到了这个。
答案 0 :(得分:0)
尝试使用名为SlowCheetah的工具:
https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5
由Scott Hanselman提拔:这是一个visual studio扩展,允许你转换子文件夹中的xml文件 - 我认为这是你想要的。据我所知,它也适用于TFS构建服务器。
答案 1 :(得分:0)
这可以通过内置功能和对csproj文件的一点修改来实现。
将这些行添加到csproj文件中,它将在每次构建时创建更新的web.config。它将您的web.config文件放在Config文件夹中,从选定的转换配置文件对其应用转换,然后将输出放在根目录中。
<PropertyGroup>
<BuildDependsOn>
CustomWebConfigTransform;
$(BuildDependsOn);
</BuildDependsOn>
</PropertyGroup>
<Target Name="CustomWebConfigTransform">
<TransformXml source="$(ProjectDir)\Config\Web.config"
transform="$(ProjectDir)\Config\Web.$(Configuration).config"
destination="Web.config" />
</Target>
我已经确认这适用于子文件夹。我为我的Web API项目使用了没有子文件夹的版本。我建议从源代码管理中排除root web.config文件,因为每次使用不同的配置构建时都会更改。
此外,如果构建服务器没有可用的Web开发人员工具,则转换将不起作用。