编码安装程序

时间:2011-03-14 05:56:04

标签: c# installer

是否可以编写自己的c#应用程序来创建安装程序(我的意思是代码安装程序,不使用InstallShield或Visual Studio安装项目或其他任何东西?

3 个答案:

答案 0 :(得分:3)

是的,这样做“没问题”,但我对这个愿望提出质疑 -

这样做的问题有两个:

  1. 您正在做很多安装程序可以为您做的工作,并且可能做得更好,因为它们已经过大量测试。为什么要避免使用一个非常好的工具来合理地开发自己的(可能很差的)替代品呢?

  2. 如果您使用C#进行编码,则需要在安装程序能够执行之前安装.NET框架。通常,本机引导程序会在调用安装程序之前确保安装框架。

答案 1 :(得分:1)

如果你的意思是建议那么不,你应该使用ClickOnce代替它,它比编码你自己的解决方案容易/快得多。

答案 2 :(得分:1)

从某种意义上说,你将重新发明轮子,并且可能性很大,根据你安装的复杂程度,你会弄错。安装人员知道如何正确调用setup api以注册应用程序以进行卸载。他们知道如何正确安装Windows服务,创建开始菜单项,设置快捷方式等,....

我个人衷心地推荐WiX。它为您提供了基于MSI的安装的所有灵活性,具有基于xml的脚本的灵活性和简单性。

编写批处理脚本以将应用程序xcopy到位并创建一些注册表项非常容易。如果安装的任何部分失败,确保安装程序回滚事务并非易事。这是MSI安装所固有的,也是交付应用程序的首选方式。

如果您不想学习WiX,并且不关心使用MSI(基于数据库,事务)安装,至少要看一下NSIS。仅在几行脚本中执行基本安装程序非常容易,并且它至少会正确调用安装API。另外,你得到了一个很好的GUI。见http://nsis.sourceforge.net