如何在发布期间包含相关项目 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 注释文件?的主要内容,如果未能解决你的问题,请参考以下文章

Python 如何在使用 Python 写入新值后保持 XML 注释存在?

如何以编程方式删除在 XML 中定义的现有规则?

如何在 node.js 断开连接期间缓冲 MongoDB 插入?

如何将基于 java 的注释 maven 项目转换为 Spring Boot?

如何在 VSTS 构建期间使用 OctoPack 避免 XML 文件中的无效字符?

如何在迭代期间注释 Laravel 集合元素