C# Visual Studio : Embed XML Documentation File in Assembly

标签 c#

我希望将 Visual Studio 生成的自动生成的 XML 文档文件作为嵌入式资源添加到我的项目的程序集中,但我不确定如何去做。我知道我可以手动更改 .csproj 文件以添加资源,使用如下内容:

<EmbeddedResource Include="Path\To\File\MyEmbeddedResource.meta.xml">
    <Link>MyEmbeddedResource.meta.xml</Link>
</EmbeddedResource>

但我不知道它如何与构建过程交互,或者我会为 XML 文件提供什么路径,因为它本身位于构建文件夹中?

我知道我可以使用上面的代码片段将任意文件添加为 .dll 的嵌入式资源,但是我如何确保文档文件是最新的,并使用那个在最近的构建中生成?

这里的总体目标是通过反射访问文档,这样 .dll 具有更少的外部文件依赖性。鉴于项目本身是一个类库,我希望当程序集包含在另一个项目中时,任何答案都不会中断。

最佳答案

嵌入的资源文件不放在构建输出文件夹中,它包含在 DLL 文件的二进制输出中。就像您将定义一个公共(public)常量字符串,其内容是 XML 文件的内容。但是嵌入式资源可以通过https://stackoverflow.com/a/3314213/593045的解决方案访问

resouceName 取决于您放置 XML 文件的子文件夹以及您如何调用它 - 定义资源名称。 所以我会使用一个基本文件夹 e。 G。 “embeddedXmlDoc”,里面有一个相同的文件夹结构(命名空间中 . 之间的每个文本的文件夹),例如您要记录的类及其命名空间。然后,您只需使用它们的命名空间和类名就可以找到正确的文件。

关于C# Visual Studio : Embed XML Documentation File in Assembly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62601122/

相关文章:

c# - C# long 类型的等效 SQL Server 类型是什么?

c# - 如何在WPF中检测父对象的子对象的变化?

c# - 如何根据组合框中的选定值从数据库中检索数据?

c# - Image.FromStream 使用 networkStream

c# - IoC、依赖注入(inject)和构造函数参数

c# - ASP.net LINQ : return items where id equals a variable

c# - 从 C# 行为不当在 Excel 中设置单元格样式

c# - LINQ - 左外连接将列表附加到父对象

c#DateTime.将时间重置为 0

c# - 使用C#连接在线MySQL数据库-用户没有权限