Asp.net-Core

NuGet 包 XML 文件在 .NET Core 2.2 應用程序中不可見

  • October 25, 2018

我正在使用具有XML 文件文件的NuGet 包

但是,當我將包包含在*.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.xmlMakanalTech.CommonEntities.dll一起包含。

但是,我想知道為什麼 xml 文件已將項目中的MakanalTech.CommonEntities.xml的全名刪除為包中的**CommonEntities.xml。也許這是問題的原因?

然後問題是當我將包作為依賴項包含在另一個項目中時,沒有任何 XML 註釋/文件可見。所以我不能將滑鼠懸停在一個類型上來查看它的描述,如果我查看定義,定義中沒有任何評論/文件。

類庫產品 https://imgur.com/zbE7ngM(還不能發布圖片)

查看其他項目的定義: https ://imgur.com/pwmvpX7

終於從這個文章中找到了問題。從 Visual Studio 2017 看來,這似乎很麻煩,不能正確和自動地處理這個問題。

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

然後我重新打包了庫,清除了我的 nuget 記憶體,並重建了包含它的新項目,現在我可以看到所有 XML 文件。

NuGet 包 XML 文件在 .NET Core 2.2 應用程序中不可見

就像你發現“lib /netstandard1.3/ 目錄下,CommonEntities.xml 與 MakanalTech.CommonEntities.dll 一起包含的。 ”,.xml文件lib夾中的文件,然後根據文件從基於約定的工作目錄

在此處輸入圖像描述

只會添加 .dll 文件作為參考,.xml文件將被複製到項目文件夾中。這就是 XML 文件在 .NET Core 2.2 應用程序中不可見的原因。

此外,由於您使用的是 .netstandard 項目,因此nuget 問題 4837.xml將阻止文件自動複製到項目文件夾中。

要解決此問題,我們必須創建包含文件.nuspec的選項並將此文件添加到項目中的文件,請查看其他執行緒的詳細資訊。contentFiles``.xml

但是,如果您不想手動編輯.nuspec每個版本,您可以使用建構後事件自動打包 nuget 包,例如:

nuget pack "$(.NuspecFilePath)\xxx.nuspec" 

或者您可以直接從包中手動將 .xml 文件添加到項目中,該包位於路徑中:C:\Users\<UserName>\.nuget\packages.

希望這可以幫助。

引用自:https://stackoverflow.com/questions/52891727