我已经创建了一个只有内容的Nuget包,它将一个文本文件添加到安装到的项目中。我在没有文本文件的情况下签了这个项目,因为我希望在nuget restore期间恢复它。在CI机器试图恢复包之前,一切都很好。还原成功,但未添加文本文件。显然,nuget认为文本文件已经存在,因为项目文件中有对它的引用。
如何让nuget恢复文本文件?
本质上,我想要的行为与DLL文件相同:在安装包时,对DLL的引用被添加到项目;当包被还原时,DLL被还原以满足项目文件中的引用。除了文本文件,我想要同样的行为。这个是可能的吗?
发布于 2017-02-19 16:37:01
我最后所做的是将文本文件放入这样的顶级文件夹中(来自我的.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");这给我带来了想要的行为:当包被还原时,文件就会被还原,并将引用指向的位置准确地放在那里。
https://stackoverflow.com/questions/42207183
复制相似问题