在构建时从web.config中删除注释

时间:2014-02-06 01:03:59

标签: asp.net asp.net-mvc web.config-transform

是否可以从构建中的web.config中删除注释行? xml转换可以删除一些元素,但我找不到任何语法来清理文件中的注释。

我们正在为构建使用TFS 2010构建服务器。

3 个答案:

答案 0 :(得分:6)

使用xml转换是不可能的。

但您可以使用自己的控制台应用程序或msbuild任务执行此操作。 请参阅此处的示例代码Remove XML comments using Visual Studio 2010 Web Config Transformation

答案 1 :(得分:1)

<add xdt:Transform="RemoveAll" xdt:Locator="XPath(//comment())" />

将此节点放在转换文件的根节点中。 "XPath(//comment())" 选择所有要删除的 XML 注释节点。

答案 2 :(得分:0)

我遇到了类似的问题,我想在发布到网站之前从配置文件中删除dev注释。我编写了一个应用程序,它将在我在命令行指定的目录中以递归方式从配置文件中删除注释。下面的示例假定YourCommentRemover也会这样做。

我将评论转移项目作为我的解决方案的一部分,并在我计划部署的网络应用程序中引用它。您可以根据需要添加可执行文件作为参考。由于我不希望部署评论转发器,因此我添加了一项任务,将其从 bin 目录中删除,并在其中进行部署,(ProjectDir)obj\$(Configuration)\Package\PackageTmp\

在文本编辑器中打开项目文件(您可以右键单击解决方案资源管理器中的项目文件,然后选择“编辑项目文件&#39;”。

转到项目文件的最后,在</Project>

之前插入以下内容
<Target Name="BeforePublish" BeforeTargets="MSDeployPublish">
    <Exec Command="$(ProjectDir)bin\YourCommentRemover $(ProjectDir)obj\$(Configuration)\Package\PackageTmp" />
    <Exec Command="del $(ProjectDir)obj\$(Configuration)\Package\PackageTmp\bin\YourCommentRemover.*" />
</Target>

此目标将在任何文件在发布时复制到Web应用程序位置之前运行。