C# 从子文件夹config transforms转换根web.config需要什么?

C# 从子文件夹config transforms转换根web.config需要什么?,c#,asp.net-mvc,web.config-transform,C#,Asp.net Mvc,Web.config Transform,因此,我的根目录中有一个web.config,名为config的子文件夹中有一个web.config。我想在构建时转换根web.config。我知道这是可以做到的,但我不知道如何做到 我在另一个没有后期或预构建操作的项目中看到过这一点。试试这个名为SlowCheetah的工具: 由Scott Hanselman推广: 这是一个VisualStudio扩展,允许您转换子文件夹中的xml文件——我想这就是您想要的。据我记忆所及,它也适用于TFS build server。通过内置功能和对cspr

因此,我的根目录中有一个web.config,名为config的子文件夹中有一个web.config。我想在构建时转换根web.config。我知道这是可以做到的,但我不知道如何做到


我在另一个没有后期或预构建操作的项目中看到过这一点。

试试这个名为SlowCheetah的工具:

由Scott Hanselman推广:


这是一个VisualStudio扩展,允许您转换子文件夹中的xml文件——我想这就是您想要的。据我记忆所及,它也适用于TFS build server。

通过内置功能和对csproj文件的少量修改,这是可行的

将这些行添加到csproj文件中,它将在每次构建时创建一个更新的web.config。它获取config文件夹中的web.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>

客户网络配置转换;
$(BuildDependsOn);
我已确认此操作适用于子文件夹。我在web API项目中使用了一个没有子文件夹的版本。我建议将root web.config文件从源代码管理中排除,因为每次使用不同的配置进行构建时,它都会发生更改

此外,如果构建服务器没有可用的web开发人员工具,转换将无法工作