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

我很惊讶,我找不到这个问题已经问了,所以如果我错过了,请立即通知

我需要在.NET中编写一个非常小的,相当简单的应用程序,这些应用程序将由终端用户下载并安装在系统上。 Silverlight的沙盒模型将无法正常工作 – 它必须是一个完整的下载安装的可执行文件

这就是我所知道的:

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

我不知道的

>如何创建一个灵活而强大的安装程序,可以在无数台桌面配置和环境中运行。
>如何使用针对Mac OSX的Mono做同样的操作。
>安装广泛分布的最终用户应用程序以及如何减轻它们的常见问题是什么?

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

Related

07000

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

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

在Windows上:

>您的安装程序将必须检测
以前/旧版本和
关闭/卸载/迁移为
适当。 NSIS和WiX都有
这个机制。
>您的安装程序/应用程序必须是
兼容不同版本的
Windows(XP,Vista,7)和不同的
.NET的版本(2.0,3.0,3.5
最终)。实际测试是
一个更繁琐的任务之一
面对。我强烈建议有一个
少量干净的虚拟机
周围的图像为此。

在OSX上:

>你最有可能要发送一个独立的应用程序包,这意味着单声道将被捆绑在你的.app中。这将增加〜50mb给您的可分发。
>您将不得不参考不同版本的Monobjc以支持OSX 10.4和10.5,您将需要配置您的构建以执行此操作,以及测试这两个版本。
>通过在代码库上运行Mono Migration Analyzer (MoMA),确保您的c#代码不使用Windows / .NET特定的调用

升级

你没有提到你打算如何提供升级。 NSIS和WiX有能力处理升级。在部署初始版本之前,请确保您的构建版本控制方案已经完成。在OSX上,Monobjc可以与Sparkle集成。

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...