我创建了一个系统,该系统动态加载一个库并执行它的主类。 一切工作正常,我的问题是如何发布具有所有依赖项的此DLL。由于没有可执行项目在引用它,因此我必须手动检索依赖项:尝试加载该库,检查所需的DLL,转到NuGet缓存文件夹,复制这些库,再试一次,检查它是否抱怨更多的依赖项,依此类推直到拥有所有必需的库。
这是一个真正的痛苦,我还没有找到有关如何执行此操作的任何信息,这是否可能还是我坚持下去?
该库是.net标准2.0库,我之前使用.net classic进行过此操作,并且输出文件夹始终包含所有必需的库,甚至包括来自NuGet软件包的库,但是对于.net标准,现在已经有所变化,现在仅复制了引用项目中的库,没有引用NuGet包被复制到输出文件夹。
干杯。
答案 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输出文件夹中。