首页 > 解决方案 > NuGet 包中的文档消失了

问题描述

我用 C# 编写了一个类库,我需要将它推送到私有 NuGet 服务器(v3.4.1.0)。我用 XML 文档注释修饰了我的类和方法。

在项目属性面板的构建选项卡上选中XML 文档文件选项,项目构建成功,并且在项目的根文件夹中生成与程序集同名的 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 不再显示我的评论,并且程序集元数据似乎也没有。

有人可以支持我吗?

标签: c#visual-studio.net-corenuget

解决方案


这是正常的。对于 xml 文档,它在 new-sdk 样式项目下是特殊的。xml 文档只能复制到非 sdk net framework 项目中,而 new-sdk net core 项目不能。更类似于我之前处理的这个问题

所以你应该额外尝试这些步骤以获得你想要的:

1)csproj在你的nuget项目文件下输入这些节点。

<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 项目,在安装新版本之前,请先清理 nuget 缓存或删除所有文件C:\Users\xxx\.nuget\packages


推荐阅读