【问题标题】:Removing comments from web.config on build在构建时从 web.config 中删除注释
【发布时间】:2014-02-06 01:03:58
【问题描述】:

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

我们使用 TFS 2010 构建服务器进行构建。

【问题讨论】:

  • 你为什么还要这样做?

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


【解决方案1】:

更新:请参阅下面的实际和工作答案。


xml 转换是不可能的。

但您可以使用自己的控制台应用程序或 msbuild 任务来完成。 在此处查看示例代码Remove XML comments using Visual Studio 2010 Web Config Transformation

【讨论】:

  • 是的,有可能,请看下面的正确答案
【解决方案2】:
<add xdt:Transform="RemoveAll" xdt:Locator="XPath(//comment())" />

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

【讨论】:

  • 我可以确认它有效,这应该是正确的答案。
【解决方案3】:

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

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

在文本编辑器中打开您的项目文件(您可以在解决方案资源管理器中右键单击项目文件并选择“编辑项目文件”)。

转到项目文件的最后,在&lt;/Project&gt;之前插入以下内容:

<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 应用程序位置之前运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2019-05-19
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多