如何在发布期间包含相关项目 XML 注释文件?

Posted

技术标签:

【中文标题】如何在发布期间包含相关项目 XML 注释文件?【英文标题】:How to include dependent projects XML-comment files during a publish? 【发布时间】:2020-04-17 10:40:15 【问题描述】:

当我使用 Visual Studio for ASP.net 中内置的“普通”“发布工具”时,它似乎不包括属于依赖项目/程序集的 XML 注释文件。

例如,假设我们有两个项目:

    Presentation = Web 应用程序 定义 = 一个项目 包含模型的定义

表示项目依赖于定义项目。 演示项目启用了 XML-cmets,定义项目也启用了(适用于所有配置)。

演示项目在其控制器的操作中添加了一些 cmets。 定义项目在模型的属性中添加了一些 cmets。

预期的结果是,当我发布 Presentation-project 时,我们应该在 bin 文件夹中得到两个 XML- 文件:

Presentation.xml 定义.xml

如果在每个项目的构建属性中指定了任何其他名称,名称当然可能会改变。 实际结果是只有 Presentation.xml 发布到 bin 文件夹。

我尝试将生成的 Definitions.xml 文件链接到 Presentation-project 将其设置为“内容”并始终复制,最终在发布期间将文件复制到应用程序的根文件夹而不是 /bin 文件夹。 我尝试过同样的事情,但将其链接到 Presentation-project 的 bin 文件夹中,但最终导致 Definitions.xml 文件的结果位于 /bin/bin/Definitions.xml。 我尝试过链接和设置 Always,但没有任何效果。

这是一个简单的示例,可用于重构问题: https://github.com/Inx51/publishdemo

但是.. 需要注意的一点是,Definitions.xml 文件在构建过程中确实被复制到了 /bin 文件夹,但它没有被复制一次使用发布。

任何人有解决这种奇怪行为的方法吗?

【问题讨论】:

【参考方案1】:

编辑您的项目 XML 文件 .csproj/.vbproj,并将其包含在第一个 PropertyGroup 中:

<ExcludeXmlAssemblyFiles>false</ExcludeXmlAssemblyFiles>

这将包括所有依赖程序集的所有.xml

【讨论】:

以上是关于如何在发布期间包含相关项目 XML 注释文件?的主要内容,如果未能解决你的问题,请参考以下文章