为可以在Windows和OS X上运行的.NET应用程序构建安装程序?

时间:2009-08-03 16:09:25

标签: .net deployment mono desktop

我很惊讶我找不到这个问题,所以如果我错过了,请及时通知。

我需要在.NET中编写一个非常小的,相当简单的应用程序,它将由最终消费者下载并安装在他们的系统上。 Silverlight的沙箱模型不起作用 - 它必须是一个完整的下载,安装的可执行文件。

以下是我所知道的:

  • 我开发了在受控桌面环境中运行的应用程序 - 例如,在100台内部计算机上运行的IT应用程序。
  • 我使用Mono
  • 开发了应用程序

我不知道的是:

  • 如何创建一个灵活,强大的安装程序,可以在无数不受控制的桌面配置和环境中运行。
  • 如何使用针对Mac OSX的Mono进行相同操作。
  • 安装广泛分布的最终用户应用程序以及如何缓解这些应用程序有哪些常见问题?

我正在寻找最佳资源来填补我的知识空白

  

相关

     

Equivalent of a Windows Service on OSX with Mono

8 个答案:

答案 0 :(得分:13)

对于Windows,请考虑Windows Installer XML (WiX)。对于OSX,您需要生成.app包。 Here is an example使用Monobjc项目中包含的nant任务。

以下是您将面临的一些主要问题:

在Windows上:

  • 您的安装人员必须检测 旧版本和旧版本 关闭/卸载/迁移为 适当。 NSIS和WiX都有 这个机制。
  • 您的安装人员/应用必须是 兼容不同版本的 Windows(XP,Vista,7),与众不同 .NET版本(2.0,3.0,3.5 最终)。实际上测试这个是 你这是一项比较繁琐的任务 面对。我强烈建议有一个 少数干净的虚拟机 周围的图像。

在OSX上:

  • 您很可能希望发布一个独立的应用程序包,这意味着mono将捆绑在您的.app中。这将为您的distributable增加~50mb。
  • 您必须引用不同版本的Monobjc来支持OSX 10.4和10.5,您需要配置构建来执行此操作,并测试这两个版本。
  • 通过在代码库上运行Mono Migration Analyzer (MoMA),确保您的c#代码未使用Windows / .NET特定的调用。

升级:

您尚未提及计划如何提供升级。 NSIS和WiX有能力处理升级。在部署初始版本之前,请确保已完成构建版本控制方案。在OSX上,Monobjc可以与Sparkle集成。

答案 1 :(得分:6)

bitrock,它可以处理您的目标平台但需要花钱

答案 2 :(得分:3)

http://www.openlina.com/

他们提供一次构建,随处运行承诺。

答案 3 :(得分:2)

这可能是您正在寻找的答案,也可能不是。如果您的应用程序可以在Silverlight沙箱中存活,您可能想要探索Silverlight 3.0。

Silverlight 3允许您的应用程序在Windows和Mac上的浏览器之外运行。

以下是设置示例: http://www.silverlightshow.net/items/Silverlight-3-as-a-Desktop-Application-Out-of-Browser-Applications.aspx

答案 4 :(得分:2)

要创建安装程序,请执行以下操作:

  1. NSIS - Free
  2. InstallShield - Paid
  3. 我不知道如何了解Macs

    问题:计算机没有.Net Framework

    解决方案:StackOverflow - The State of Linkers for .NET apps

答案 5 :(得分:2)

您可以尝试BitRock's InstallBuilder。来自他们的网站:

  

BitRock InstallBuilder是一个   建筑开发工具   用于桌面的跨平台安装程序   和服务器软件。同   InstallBuilder,可以快速创建   Linux专业安装程序,   Windows,Mac OS X,Solaris等   来自单个项目文件的平台   并建立环境。

答案 6 :(得分:0)

你想要的是InstallAnywhere。它允许您使用一个安装程序项目定位多个平台。它将有助于依赖性和平台特定问题。

我在LINUX / BSD / Windows部署中使用它,它工作得非常好。如果你有X-windows,你有一个GUI,如果不是命令行安装。 Windows安装程序使用标准的Windows安装程序技术,看起来像一个专业的安装程序。它也支持mac OS X.我强烈推荐这个软件,它完全符合您的要求。

答案 7 :(得分:0)

正如其他海报所提到的,BitRock InstallBuilder支持Windows,Linux和Mac的目标平台。我想补充说,Mono项目本身已经使用了一段时间来为Mono运行时分发一体化二进制安装程序。它也被其他成功的基于单声道的ISV使用,如Codice Software