gpt4 book ai didi

c# - 仅内容 Nuget 包无法恢复内容

转载 作者:行者123 更新时间:2023-11-30 18:18:06 24 4
gpt4 key购买 nike

我创建了一个仅包含内容的 Nuget 包,该包将一个文本文件添加到安装它的项目中。我 checkin 了没有文本文件的项目,因为我希望在 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");

这让我得到了想要的行为:当包被恢复时,文件被恢复并准确地放在引用指向的地方。

关于c# - 仅内容 Nuget 包无法恢复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42207183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com