在.NET Core 2.2应用程序中看不到NuGet包XML文档

时间:2018-10-19 11:45:56

标签: asp.net-core .net-core visual-studio-2017 asp.net-core-mvc intellisense

我正在使用一个NuGet packageXML documentation file

但是当我将包包含在 .NET Core 2.2应用中时, IntelliSense 中将不提供注释。

程序包或应用程序中是否缺少某些内容,以便能够使用IntelliSense查看文档?

使用 VisualStudio 2017,Windows 10

更新清晰度

NuGet程序包是一个 .NET Standard 1.3 类库。在创建项目时,在Visual Studio中,我包含用于生成程序包和文档文件的选项。在项目文件中,我看到以下PropertyGroup:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DocumentationFile>C:\Users\[username]\[local path]\CommonEntities\CommonEntities\CommonEntities.xml</DocumentationFile>
</PropertyGroup>

打开包装时,可以在 lib / netstandard1.3 / 目录中看到 CommonEntities.xml MakanalTech.CommonEntities一起包含在其中。 dll

但是,我想知道为什么xml文件从项目中的 MakanalTech.CommonEntities.xml 中删除了全名,而只将其中的 CommonEntities.xml 删除了。包装。也许这是问题的原因?

然后的问题是,当我将该软件包作为依赖项包含在另一个项目中时,所有XML注释/文档都不可见。因此,我无法将鼠标悬停在类型上以查看其描述,并且如果我偷看定义,则定义中将没有注释/文档。

类库产品 https://imgur.com/zbE7ngM(尚不能发布图片)

查看其他项目的定义: https://imgur.com/pwmvpX7

2 个答案:

答案 0 :(得分:4)

最后在this帖子中找到了问题。从Visual Studio 2017来看,这似乎有很多错误,无法正确并自动处理此问题。

在.csproj文件中,我删除了<DocumentationFile>[filepath-to-xml]</DocumentationFile>,并添加了<GenerateDocumentationFile>true</GenerateDocumentationFile>

然后我重新打包了该库,清除了我的nuget缓存,并重建了包含它的新项目,现在我可以看到所有的XML文档。

答案 1 :(得分:0)

  

在.NET Core 2.2应用程序中不可见的NuGet包XML文档

就像您发现“在 lib /netstandard1.3/目录中包含CommonEntities.xml以及MakanalTech.CommonEntities.dll的一样,” .xml文件夹中的lib文件,然后根据文档From a convention-based working directory

enter image description here

仅将添加.dll文件作为参考,将.xml文件复制到项目文件夹。这就是XML文档在.NET Core 2.2应用程序中不可见的原因。

此外,由于您使用的是.netstandard项目,.xml文件将被nuget issue 4837自动阻止复制到项目文件夹。

要解决此问题,我们必须创建带有选项.nuspec的{​​{1}}文件,以包含contentFiles文件并将此文件添加到项目中,请检查{ {3}}。

但是,如果您不想手动编辑每个发行版的.xml,则可以使用构建后事件来自动打包nuget软件包,例如:

.nuspec

或者您可以直接从包中手动将.xml文件添加到项目中,该包位于路径nuget pack "$(.NuspecFilePath)\xxx.nuspec" 中。

希望这会有所帮助。