在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