在3.5 Web Forms应用程序中使用SlowCheetah配置在Web.config上进行转换

我将SlowCheetah下载到旧的.Net 3.5 Web窗体应用程序中,以便将转换添加到web.config中。

我在Windows服务和控制台应用程序中使用了SlowCheetah,以便在过去成功转换app.config。 在这些情况下,配置将被转换并作为ApplicationName.exe.config放在bin中。

但是,通过这个Web表单应用程序,配置文件永远不会在bin中结束,因为web表单站点只是通过将.dll放入bin并且IIS指向根目录来运行站点来构建的。 因此,不是将web.config包含在构建过​​程中,而是将其打包到bin中,而只是将它放在根目录中。

由于根目录下的web.config位于源代码管理中,并且是我们执行转换的文件,因此没有将转换应用于根目录中的web.config,这是件好事。

我很乐意将web.config包含在构建中,以便slowCheetah转换它,然后将它放入bin。 然后,我们必须手动将其从容器中取出,并将其放回到我们服务器的根级别,但是它有必要进行转换。

有谁知道如何让转换对我的web.config运行或让它包含在构建过​​程中,所以slowCheetah可以发挥它的魔力?

谢谢!

更新

我修改了web.config的属性,现在它已包含在构建中,但是,这些变换仍未应用到它。

构建行动:嵌入式资源

复制到输出控制器:始终复制


我将源代码控制中的Web.config重命名为Web.template.config,并添加了转换Web.template.Debug.config和Web.template.Release.config

接下来,卸载项目文件并编辑.csproj xml添加以下元素

这会在根目录中创建一个新的Web.config文件。 活泉!

<PropertyGroup>
  <PrepareForRunDependsOn>
    $(PrepareForRunDependsOn);
    WebConfigTransform;
  </PrepareForRunDependsOn>
</PropertyGroup>
<Target Name="WebConfigTransform">
  <Message Text="Configuration: $(Configuration): Web.template.$(Configuration).config" />
  <TransformXml Source="Web.template.config" 
                Transform="Web.template.$(Configuration).config" 
                Destination="Web.config" />
</Target>

找到一个更好的解决方案 - 一个没有重命名文件到.template.config。

将以下内容粘贴到Web Forms .csproj文件中。

  <Target Name="BeforeBuild">
    <Delete Files="$(TEMP)Web.TEMP.config" />
    <Copy SourceFiles="Web.config" DestinationFiles="$(TEMP)Web.TEMP.config" />
    <TransformXml 
      Source="$(TEMP)Web.TEMP.config"
      Transform="Web.$(Configuration).config"
      Destination="Web.config" />
  </Target>
链接地址: http://www.djcxy.com/p/62443.html

上一篇: Using SlowCheetah Config Transforms on Web.config in a 3.5 Web Forms app

下一篇: SlowCheetah not producing transformed config file on CI server