我将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的属性,它现在包含在构建中,但是,转换仍未应用于它。
构建操作:嵌入式资源
复制到输出控制器:始终复制
击>
答案 0 :(得分:5)
<强>解决方案强>
我将源代码控制中的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>
答案 1 :(得分:1)
找到了一个更好的解决方案 - 没有将文件重命名为 .template.config 。
将以下内容粘贴到Web窗体.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>