发布具有所有依赖项的.net标准库?

时间:2018-06-26 12:11:59

标签: c# dll nuget publish .net-standard-2.0

我创建了一个系统,该系统动态加载一个库并执行它的主类。 一切工作正常,我的问题是如何发布具有所有依赖项的此DLL。由于没有可执行项目在引用它,因此我必须手动检索依赖项:尝试加载该库,检查所需的DLL,转到NuGet缓存文件夹,复制这些库,再试一次,检查它是否抱怨更多的依赖项,依此类推直到拥有所有必需的库。

这是一个真正的痛苦,我还没有找到有关如何执行此操作的任何信息,这是否可能还是我坚持下去?

该库是.net标准2.0库,我之前使用.net classic进行过此操作,并且输出文件夹始终包含所有必需的库,甚至包括来自NuGet软件包的库,但是对于.net标准,现在已经有所变化,现在仅复制了引用项目中的库,没有引用NuGet包被复制到输出文件夹。

干杯。

2 个答案:

答案 0 :(得分:1)

在撰写本文时,它看起来像是设计使然,并且有很多大惊小怪和困惑,请参阅记录的issue on GitHub

此外,在发布引用项目B的项目A的NuGet程序包时,
B在A中成为NuGet依赖项; B的assemby未包含在A的NuGet程序包中。

我通过发布自己的NuGet软件包来处理它。

如果项目B仅与项目A一起使用或与项目A相关,则我不希望它具有项目B的NuGet程序包,因为它将单独显示在我的NuGet提要中。

答案 1 :(得分:0)

尝试:

dotnet publish

所有从属库都应复制到publish输出文件夹中。