我创建了一个仅限内容的Nuget包,它将文本文件添加到它安装到的项目中。我在项目中检查了没有的文本文件,因为我希望在nuget restore
期间恢复它。一切都很好,直到CI机器尝试恢复包。还原成功但未添加文本文件。显然,nuget认为文本文件已经存在,因为项目文件中有对它的引用。
如何让nuget恢复文本文件?
基本上,我想要的行为与DLL文件相同:安装软件包时,会将对DLL的引用添加到项目中;当包恢复时,将恢复DLL以满足项目文件中的引用。我想要相同的行为,但对于文本文件。这可能吗?
答案 0 :(得分:0)
我最终做的是将文本文件放入顶级文件夹(我的.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");
这让我得到了理想的行为:当包恢复时,文件将被恢复并准确放置在引用指向的位置。