我希望将 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/