【问题标题】:How to prevent Visual Studio from "publishing" XML documentation files in web projects?如何防止 Visual Studio 在 Web 项目中“发布”XML 文档文件?
【发布时间】:2012-02-16 15:41:13
【问题描述】:

注意:这个问题类似于How to prevent the copy of XML documentation files in a release mode build?,但不一样,那里的答案不适用。继续阅读以找出原因。 (如果您不同意,请在 cmets 或聊天中询问,我很乐意详细说明)。


我有一个库项目 (myLibrary) 和一个引用该库的 ASP.NET Web 应用程序项目(两者都在同一个解决方案中)。为库项目选中“生成 XML 文档文件”,因为我希望在开发时拥有那些不错的 IntelliSense 功能。

当我发布 Web 应用程序(项目上的上下文菜单/发布...)时,它仅将运行应用程序所需的文件(无源代码等)复制到某个发布目录。那挺好的。不幸的是,它还复制了库的 XML 文档文件。由于我认为我们图书馆的文档是商业机密,我不希望它最终出现在客户的服务器上。因此,我们必须记住在部署之前手动从发布目录中删除此文件。

有没有办法防止 Visual Studio 在发布 ASP.NET 项目时复制此文件,但在开发时仍保留 XML 文档 IntelliSense 的好处?

【问题讨论】:

    标签: c# asp.net vb.net deployment publish


    【解决方案1】:

    假设您使用不同的配置进行开发和发布(以及其他任何配置),取消选中“XML 文档文件”/关闭特定配置的生成将阻止它在不需要时被部署。另一种选择是删除文件的构建后操作。

    这两个选项中的前者看起来更优雅。

    【讨论】:

    • 这并不理想,因为 (a) 您需要手动编辑 vbproj 文件以便为调试/发布设置不同的值,以及 (b) 在设置“发布”时编码时您会错过一些 Intellisense 功能,但它似乎是迄今为止最好的选择。
    • @Heinzi 我不相信您不能在 UI 中按配置执行此操作,但您让我考虑进行完整性检查。 ...完整性检查:可以在 UI 中按配置指定。
    • 我也刚刚检查过:您可以为 C# 项目执行此操作,但不适用于 VB 项目。在 VB 项目中,该设置用于 所有 配置(除非您在 vbproj 文件中手动覆盖它——然后 UI 中的复选框显示“不确定状态”)。
    • @Heinzi 很抱歉,我没有仔细检查 VB.NET 项目。
    【解决方案2】:

    有没有办法阻止 Visual Studio 复制此文件时 发布 ASP.NET 项目,

    在发布模式下关闭 XML 文档

    但仍保留 XML 的优点 开发时的文档 IntelliSense?

    在调试模式下on / off 开启 XML 文档。 Intellisense 会以任何一种方式工作。

    【讨论】:

    • 我不同意你的最后一句话:如果为库关闭了 XML 文档,则显示方法摘要(刚刚测试过:关闭、清理项目、编写代码) .
    【解决方案3】:

    还有另一种解决方案。只需在您的 csproj 文件的开头某处包含以下内容:

    <AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions>
    

    就是这样。 XML 文件将不再发布。当然,你可以根据具体的配置来设置。

    【讨论】:

    • 注意:此更改将停止输出引用程序集(在同一解决方案中)中的 .config 文件。
    【解决方案4】:

    我在 Express 中这样做,但这似乎对我有用...

    1. 去了物业(项目)
    2. 点击发布标签
    3. 单击应用程序文件按钮
    4. 选中显示所有文件
    5. 将 xml 文件设置为排除

    正如我所说,使用 Express 2010,但这有效(它没有将文件复制到发布位置)。

    【讨论】:

    • 谢谢,但这仅适用于 Windows 应用程序项目,不适用于 Web 应用程序。他们有不同的发布过程,据我所知,你不能在那里配置单个文件。
    • 啊,错过了那部分。对不起。
    【解决方案5】:

    您可以通过在 Visual Studio 上添加插件 Web 部署项目来做到这一点,该项目可以从这里下载:http://www.microsoft.com/download/en/details.aspx?id=19995 并排除您需要的任何文件/文件夹,请按照找到的步骤 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多