我想构建一个可以部署的本机.NET Core可执行文件,但是当我发布项目时,编译器会将所有依赖项导出到同一目录中,并且可执行文件需要它们在不具有此功能的系统上运行已安装.NET Core运行时。有没有办法用项目DLL或可执行文件编译/打包DLL?感谢。
答案 0 :(得分:1)
要将依赖项合并到已编译的程序集中,请查看Costura for Fody:
https://github.com/Fody/Costura
我之前使用过它,效果很好。您可以定义某些依赖项以合并到名为 FodyWeavers.xml 的文件中(请参阅Costura-Fody链接以获取示例)。
因此,例如(取自Costura README.md ),您可以拥有两个依赖关系' Foo'和' Bar'可以在FodyWeavers.xml文件中按如下方式合并到目标程序集中。
<Costura>
<IncludeAssemblies>
Foo
Bar
</IncludeAssemblies>
</Costura>
除此之外,ILMerge是一个很好的方法:https://www.nuget.org/packages/ilmerge
编辑:找到一个链接,描述在自包含应用程序中部署所需的.NET核心依赖项:http://druss.co/2016/08/deploy-and-run-net-core-application-without-installed-runtime-self-contained-applications/