我很惊讶我找不到这个问题已经问过,所以如果我只是错过了它,请及时通知。
我需要写在.NET将由最终消费者下载并安装到他们的系统上一个非常小的,非常简单的应用程序。 Silverlight的沙箱模型将无法正常工作 - 它必须是一个完整的下载,安装可执行文件。
这是我知道的:
- 我已经开发了在受控的桌面环境中运行的应用程序 - 例如,上百元的内部计算机上运行的应用程序的IT。
- 我已经开发使用的Mono应用
我不知道是什么:
- 如何创建一个灵活,强大的安装程序,将在不受控制的桌面配置和环境的大量工作。
- 如何做单同样针对Mac OSX版。
- 什么是安装一个广泛分布的终端用户应用程序以及如何缓解这些常见的问题是什么?
我在寻找最好的资源来填补我的知识空白 。
有关
Windows服务的OSX上等效采用单
对于Windows,考虑的Windows Installer XML(WiX的) 。 对于OSX,你需要生成的.app捆绑。 下面是一个例子使用附带的恶性任务Monobjc项目。
下面是一些你将面临的主要问题:
在Windows上:
- 您的安装程序会检测先前/旧版本并关闭/卸载/适当的迁移。 无论NSIS和维克斯有这个机制。
- 您的安装程序/应用程序将必须与不同版本的Windows兼容(XP,Vista中,7),以及不同版本的.NET(2.0,3.0,3.5最终)。 实际测试中,这是你所面临的较乏味的任务之一。 我强烈建议有围绕这个干净的虚拟机映像的屈指可数。
在OSX:
- 你很可能要推出一款独立的应用程序包,这意味着单将您的.app捆绑之内。 这将增加50MB〜你的分发。
- 你将不得不引用不同版本Monobjc的支持OSX 10.4和10.5,您将需要配置您的构建要做到这一点,以及测试两个版本。
- 确保你的C#代码不使用Windows / .NET运行特定的电话单迁移分析器(纽约现代艺术博物馆)在你的代码。
升级:
你没有提到你打算如何提供升级。 NSIS和维克斯必须处理升级的能力。 确保你有你的编译版本控制方案的部署初始版本之前制定。 在OSX,Monobjc可以与集成旌宇 。
有bitrock ,它处理你的目标平台,但需要花钱
这可能是也可能不是你要找的答案。 如果您的应用程序可以在Silverlight中沙盒生存,你可能想探索的Silverlight 3.0。
Silverlight 3中允许应用程序在Windows和Mac的浏览器外运行。
这里是设置它的一个例子: http://www.silverlightshow.net/items/Silverlight-3-as-a-Desktop-Application-Out-of-Browser-Applications.aspx
要创建一个安装有:
- NSIS -免费
- 的InstallShield -付费
我不知道怎么知道的Mac
问题:计算机没有.Net框架
解决方案: StackOverflow的-接头为.NET应用程序的状态
你可以尝试BitRock的InstallBuilder 。 从他们的网站:
BitRock InstallBuilder是构建跨平台安装了桌面和服务器软件开发工具。 随着InstallBuilder,您可以快速地从一个单一的项目文件创建用于Linux,在Windows,Mac OS X,Solaris和其他平台的专业安装和构建环境。
你需要的是InstallAnywhere的 。 它可以让你针对一个项目安装多个平台。 这将帮助依赖关系和平台的具体问题。
我用它在Linux / BSD / Windows的部署,以及它美丽的工作。 如果你有X-windows的,你有一个GUI,如果没有一个命令行安装。 Windows安装使用标准的Windows Installer技术合作,以及看起来像一个专业的安装程序。 它支持Mac OS X为好。 我强烈推荐这个软件,它正是你想要的。
至于提到的其他海报, BitRock InstallBuilder支持Windows,Linux和Mac的目标平台。 我想补充一点,它已被用于通过Mono项目本身的同时,分配的单运行所有功能于一身的二进制安装包。 它也可以用来通过像其他成功的基于Mono的ISV Codice软件