仅包含内容的Nuget包无法恢复内容

5
我创建了一个仅包含内容的Nuget包,该包会向安装它的项目中添加一个文本文件。我在未添加文本文件的情况下检入了该项目,因为我想在执行“nuget restore”时恢复它。一切都很好,直到CI机器尝试还原该包时。还原成功,但是文本文件未添加。显然,Nuget认为该文本文件已经存在,因为项目文件中存在对它的引用。
如何让Nuget还原文本文件呢?
本质上,我想要的行为与DLL文件相同:安装包时,将DLL的引用添加到项目中;还原包时,会还原DLL以满足项目文件中的引用。我希望文本文件也能有同样的行为。这可能吗?
1个回答

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");

这让我得到了期望的行为:当包被恢复时,文件被恢复并放置在引用指向的位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接