![](/img/trans.png)
[英]Importing content-only package to DotNet Core 3.1 project in Visual Studio 16.6
[英]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.