NuGet 包中的文档消失了
Posted
技术标签:
【中文标题】NuGet 包中的文档消失了【英文标题】:Documentation disappears in NuGet package 【发布时间】:2021-06-16 03:28:04 【问题描述】:我用 C# 编写了一个类库,我需要将它推送到私有 NuGet 服务器 (v3.4.1.0)。我用 XML 文档 cmets 修饰了我的类和方法。
XML 文档文件 选项在项目属性面板的 Build 选项卡上选中,项目成功构建,并且在项目的根文件夹中生成了 xml 文件与程序集同名。
在 .csproj 文件中,相关部分如下所示:
<PropertyGroup>
<DocumentationFile>absolutePathTo\assemblyName.xml</DocumentationFile>
</PropertyGroup>
IntelliSense (VS2019 16.9.0) 可识别文档并在同一解决方案下的其他项目中正确显示。
当我生成 NuGet 包时,它会在项目的 bin\Debug 文件夹中创建。如果我将其作为 zip 存档打开,则可以在具有匹配名称的 lib\netstandard2.1 文件夹中找到 DLL 和文档 XML。
一旦我将这个包从私有 NuGet 服务器安装到另一个项目,它就可以正常工作,但会丢失完整的文档。 IntelliSense 不再显示我的 cmets,而且程序集元数据似乎也没有。
有人可以支持我吗?
【问题讨论】:
【参考方案1】:这很正常。对于 xml 文档,它在 new-sdk 样式项目下是特殊的。 xml 文档只能复制到非 sdk net framework 项目中,而 new-sdk net core 项目不能。 More similar to this issue I handled before.
所以你应该额外尝试这些步骤以获得你想要的:
1)在你的nuget项目的csproj
文件下输入这些节点。
<ItemGroup>
<None Include="xxx\absolutePathTo\assemblyName.xml"(the path of the xml file under your project folder) Pack="true">
<PackageCopyToOutput>true</PackageCopyToOutput>
</None>
</ItemGroup>
2) 之后,重新打包您的 nuget 项目并在安装新版本之前,请clean nuget caches first 或删除C:\Users\xxx\.nuget\packages
下的所有文件
【讨论】:
以上是关于NuGet 包中的文档消失了的主要内容,如果未能解决你的问题,请参考以下文章