簡體   English   中英

文檔在 NuGet package 中消失

[英]Documentation disappears in NuGet package

我在 C# 中編寫了一個 class 庫,我需要將其推送到私有 NuGet 服務器(v3.4.1.0)。 我用 XML 文檔注釋裝飾了我的類和方法。

在項目屬性面板的Build選項卡上選中XML 文檔文件選項,項目成功構建,並在項目的根文件夾中生成與程序集同名的 xml 文件。

在 .csproj 文件中,相關部分如下所示:

<PropertyGroup>
  <DocumentationFile>absolutePathTo\assemblyName.xml</DocumentationFile>
</PropertyGroup>

IntelliSense (VS2019 16.9.0) 識別文檔並在同一解決方案下的其他項目中正確顯示。

當我生成 NuGet package 時,它會在項目的bin\Debug文件夾中創建。 如果我將它作為 zip 存檔打開,則 DLL 和文檔 XML 可以在具有匹配名稱的lib\netstandard2.1文件夾中找到。

一旦我將這個 package 從私有 NuGet 服務器安裝到另一個項目,它就可以正常工作,但會丟失完整的文檔。 IntelliSense 不再顯示我的評論,並且程序集元數據似乎也沒有。

有人可以支持我嗎?

這是正常的。 對於 xml 文檔,它在 new-sdk 樣式項目下是特殊的。 xml文檔只能復制到非sdk net framework項目中,new-sdk net core項目不能。 更類似於我之前處理的這個問題

所以你應該額外嘗試這些步驟以獲得你想要的:

1)csproj項目的 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 項目,在安裝新版本之前,請先清理 nuget 緩存或刪除C:\Users\xxx\.nuget\packages

就個人而言,我讓 Visual Studio 為我處理事情。 如果您在項目中右鍵單擊並選擇Properties ,在Build -> Output區域中,您應該會在Documentation file下看到一個標記為Generate a file contains API 文檔的復選框。 . 當您選中此選項時,下方會出現一個新選項: XML 文檔文件路徑 但是文件選擇器標記為 API 文檔文件的可選路徑。 留空以使用默認位置。 .

僅供參考:默認位置在您構建項目時生成的 EXE / DLL 旁邊。

When you next build your code (for anyone else reading, I assume you've got the Generate NuGet package on build in the Package area checked too) it will also package up the XML documentation into the NuGet package generated.

從這個新的 package 的用戶的角度來看,Visual Studio 將拿起 XML 文檔里面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM