簡體   English   中英

僅限內容的Nuget程序包無法還原內容

[英]Content-only Nuget package fails to restore content

我創建了一個僅限內容的Nuget包,它將文本文件添加到它安裝的項目中。 我在沒有文本文件的情況下檢查了項目,因為我希望在nuget restore期間nuget restore 一切都很好,直到CI機器嘗試恢復包。 還原成功但未添加文本文件。 顯然,nuget認為文本文件已經存在,因為項目文件中有對它的引用。

如何讓nuget恢復文本文件?

本質上,我想要的行為與DLL文件相同:當安裝包時,對DLL的引用被添加到項目中; 當包恢復時,將恢復DLL以滿足項目文件中的引用。 我想要相同的行為,但對於文本文件。 這可能嗎?

我最終做的是將文本文件放入頂級文件夾(這是我的.nuspec的一個片段):

    </metadata>
    <files>
        <file src="dictionary.txt" target="dictionary.txt" />
    </files>
</package>

因此,在安裝軟件包時,文件將放入/packages/MyPackage.0.0.6並從.csproj中引用,如下所示:

<ItemGroup>
  <EmbeddedResource Include="$(SolutionDir)packages\MyPackage.0.0.6\dictionary.txt" />
</ItemGroup>

然后從.cs讀取文件,如下所示:

var stream = Assembly.GetExecutingAssembly()
             .GetManifestResourceStream(GetType(), "dictionary.txt");

這讓我得到了理想的行為:當包恢復時,文件將被恢復並准確放置在引用所指向的位置。

暫無
暫無

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

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