【问题标题】:Static compilation in the .NET world.NET 世界中的静态编译
【发布时间】:2009-03-23 00:55:05
【问题描述】:

我将为具有 WinXP 计算机的客户端编写一个小型桌面应用程序,并且他们不会安装 .NET 框架(至少不适合我)。

所以我的选择仅限于 C++ 或 VB6,它们听起来都不是很好。 我记得那天读到 Mono 提出了一个静态编译器,但最近我唯一能找到的是 Miguel de Icaza 关于游戏引擎静态编译的条目,目的是在 iPhone 上运行应用程序 - 而不是我的想到了。

是否有任何免费或商业产品可以让我静态编译我的 .net 3.5 winform 应用程序?

谢谢

【问题讨论】:

  • 我想知道谁会否决这个问题。静态包含运行时会很棒。
  • 似乎有些问题无缘无故被否决了,这样做的人从不发表评论,所以我们只能摸不着头脑
  • 为他们安装 .NET 有什么问题?将其包含在安装程序中。
  • .NET 安装是所有历史上最痛苦的设置之一,无论如何都是可能的。我做过很多这样的设置,其中大约一半甚至在 XP 下崩溃

标签: .net-3.5 static compilation


【解决方案1】:

你可以尝试使用Remotesoft Salamander.

它完全符合您的要求。

【讨论】:

    【解决方案2】:

    Mono 已大大改进了对提前编译 (AOT) 的支持,假设您愿意/能够以 Mono 而不是 .Net 运行时为目标,那么几乎可以静态编译任何 CIL 应用程序。

    这是否是一个好主意,完全取决于应用程序和您的限制。

    例如,Novell 现在发布了 MonoTouch,这是一个完全 AOT 编译和链接的 CLI 实现,允许 .Net 应用程序(不仅仅是游戏)在 iPhone 上针对 CocoaTouch 框架运行。

    这些相同的 AOT 技术可用于编译不需要 .Net 或 Mono 运行时作为先决条件的 Winforms 应用程序。有很多与 AOT 相关的性能权衡(正面和负面),所以如果没有尽职调查,我不会继续前进。


    编辑:

    针对 John Saunders 提出的“为什么不为他们安装它?”的问题。这实际上提出了您可能需要 AOT 编译的一个原因。引导程序。

    为了安装任何东西,你必须运行一个可执行文件。您可以分发 MSI(将隐式启动 msiexec.exe),也可以分发 exe。 MSI 虽然功能强大,但开发人员的体验非常糟糕。因此,您可以使用 .NET 构建您的引导程序(AOT 编译消除了运行时依赖项),它会在安装您的应用程序之前安装任何必要的先决条件(例如 .NET)。

    此外,一些公司可能需要提供不需要用户安装任何东西(静默或其他方式)的可下载可执行文件。

    还有一点:安装 .NET 需要管理权限。 AOT 可以让您绕过应用程序的这一要求。

    同样,这是否是一个好主意完全取决于应用程序和您的限制。

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 2011-10-02
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      相关资源
      最近更新 更多