【问题标题】:How do I link a .NET Core self-contained deployment?如何链接 .NET Core 独立部署?
【发布时间】:2017-08-04 16:20:09
【问题描述】:

我在 good tutorial 之后创建了一个独立的 .NET Core 控制台应用程序。

此过程会生成一个 /publish 文件夹,其中包含 123(!) 个文件,包括我的可执行文件。现在,由于所有这些 dll 都不太可能改变,我想将它们静态链接到可执行文件并获得一个单一的、干净的可执行文件。

我最感兴趣的是在我的构建服务器上链接一个 win64 目标,但是关于如何构建一个 macosx 可执行文件或一个 linux 的说明将对我和未来的读者有用。

我记得几年前的doing this under .Net classic。有没有人在.Net Core下成功过?

另请参阅related corefx issue

【问题讨论】:

  • 你为什么要那个?有什么好处?
  • @Oscar 为什么会有这样的担忧?我想我更喜欢它。我不认为解释为什么会帮助任何人回答,因为我不是在寻找替代解决方案,也不是沉迷于讨论这是否是一件好事。我可以接受“不可能,这就是为什么......”的答案,如果是这样的话。
  • 你看过 CoreRT 吗?它确实生成了一个独立的可执行文件,尽管它也有一些其他的权衡。据我所知,目前没有添加到 .NET Core 本身的链接的计划。
  • @Oscar 对我的评论语气感到抱歉。每次我问一个棘手的问题时,都会有人回答“为什么?我不会打扰”,我希望这次能避免。只是因为学习新东西很酷:-)
  • .net 出来已经有 15 年了,它仍然不能像 MFC 那样创建一个在所有 Windows 计算机上都能“正常工作”的简单单个文件 exe!但是我认为避免使用 C++ 还是值得的。

标签: .net .net-core static-linking


【解决方案1】:

自包含需要引用.Net Core CLICoreFX,因此您不能简单地创建“一个DLL”。您可以尝试通过在主项目中添加 libs 函数来最小化 DLL 的数量,但我不推荐这种方式

听起来您想要的功能是CoreRT (.NET Native compiler toolchain),但它仍在大力开发中,它仅适用于开箱即用的UWP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 2016-06-19
    • 2017-02-14
    • 2013-05-27
    • 2016-01-26
    相关资源
    最近更新 更多