【发布时间】:2014-02-06 01:03:58
【问题描述】:
是否可以在构建时从 web.config 中删除注释行? xml 转换可以很好地删除一些元素,但我找不到任何语法来清除文件中的 cmets。
我们使用 TFS 2010 构建服务器进行构建。
【问题讨论】:
-
你为什么还要这样做?
标签: asp.net asp.net-mvc web.config-transform
是否可以在构建时从 web.config 中删除注释行? xml 转换可以很好地删除一些元素,但我找不到任何语法来清除文件中的 cmets。
我们使用 TFS 2010 构建服务器进行构建。
【问题讨论】:
标签: asp.net asp.net-mvc web.config-transform
更新:请参阅下面的实际和工作答案。
xml 转换是不可能的。
但您可以使用自己的控制台应用程序或 msbuild 任务来完成。 在此处查看示例代码Remove XML comments using Visual Studio 2010 Web Config Transformation
【讨论】:
<add xdt:Transform="RemoveAll" xdt:Locator="XPath(//comment())" />
将此节点放在转换文件的根节点中。 "XPath(//comment())" 选择要删除的所有 XML 注释节点。
【讨论】:
我有一个类似的问题,我想在发布到网站之前从配置文件中删除 dev cmets。我编写了一个应用程序,它将递归地从我在命令行上指定的目录中的配置文件中删除 cmets。下面的示例假设 YourCommentRemover 也会这样做。
我将评论删除器项目作为我的解决方案的一部分,并在我计划部署的 Web 应用程序中引用它。如果需要,您可以将可执行文件添加为参考。由于我不希望部署评论删除器,因此我添加了一项任务,将其从 bin 目录中删除,(ProjectDir)obj\$(Configuration)\Package\PackageTmp\。
在文本编辑器中打开您的项目文件(您可以在解决方案资源管理器中右键单击项目文件并选择“编辑项目文件”)。
转到项目文件的最后,在</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 应用程序位置之前运行。
【讨论】: