我将SlowCheetah下载到旧的.Net 3.5 Web表单应用程序中,以便将转换添加到web.config.
我已经将SlowCheetah与Windows服务和控制台应用程序一起使用,以便在过去成功转换app.config.在这些情况下,配置将被转换并作为ApplicationName.exe.config放入bin中.
但是,使用此Web表单应用程序时,配置文件永远不会在bin中结束,因为Web表单站点是使用.dll放在bin中构建的,而IIS指向根目录以运行站点.因此,不是将web.config包含在构建过程中并打包在bin中,而是只留在根位置.
没有转换应用于根目录中的web.config,这是一件好事,因为根目录中的web.config位于源代码控制中,并且是我们执行转换的文件.
我很高兴将web.config包含在构建中,以便slowCheetah转换它然后将其放入bin中.然后我们必须手动将它从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>