NuGet 包 XML 文件在 .NET Core 2.2 應用程序中不可見
但是,當我將包包含在*.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
終於從這個文章中找到了問題。從 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.希望這可以幫助。
