使用托管自定义操作设置项目。很头疼的头痛

时间:2010-07-02 15:20:51

标签: wix windows-installer installshield setup-project orca

我正在尝试创建一个安装项目,我无法相信它会有多痛苦。我尝试使用的工具没有让我满意。 怎么会?好吧,让我们看看:

第一个也是最简单的选项:在Visual Studio中构建的安装项目。简单快捷。您可以轻松实现自定义操作,即使您的代码是用c#或vb.net编写的。正是我想要的。但是这种方法有一些缺点,主要的方法是实现自定义对话框令人难以置信的痛苦方法。例如,如果我需要请求数据库凭据,请授权用户并继续安装其余部分。但不是。无法在VS中构建自定义设置对话框。实际上是there is a way,但这并不容易。我的意思是,你在开玩笑吧?我不得不花一天时间创建几个简单的对话框?

第二个选项:使用某种工具。像InstallShield一样。你必须支付它,是的,幸运的是它很便宜。只需5500美元。没什么大不了的吧?好吧,也许,但对我而言,就像“老兄,忘记它”

第三个选项:使用WIX Nice,有很多选择。不像内置的VS那么容易使用,但有很多更好的功能。唯一的问题 - 我花了几个小时试图说服那个用c#编写的代码。我失败了。什么都没有帮助,我放弃了。

现在。请各位专家,我们都知道开发人员。帮我。我该怎么办?什么是解决我问题的最好方法(相信我,我的老板会杀了我,他喜欢在员工的尸体上取得成果)。

告诉我有没有更好的方法来编辑.wid文件。使用Orca工具不是一个简单的解决方案。 或者向我展示一个使用WIX构建的安装项目的真实示例,它可以运行托管c#代码。

谢谢!

2 个答案:

答案 0 :(得分:1)

我通过在自定义操作中显示表单来实现自定义对话框。这是一件很简单的事情。

答案 1 :(得分:1)

我不建议使用“安装项目”(也称为Visual Studio部署项目)或托管自定义操作(在您的上下文中,您指的是InstalUtil自定义操作)。

对于托管自定义操作,我使用Windows Installer XML - DTF(部署工具框架)。这样就可以构建和打包您的CA,以便像MSI一样对MSI进行外观和感觉,这意味着您可以使用InstallShield,WiX,Wise等来使用它。

我也不建议将CA用作虚假对话框。如果您希望更高级的UI编写外部UI处理程序(而不是简单的任务)。我怀疑你真正的问题是VDRPOJ没有公开这个,WiX是用XML编写的。 InstallShield为您提供了一个用于处理自定义对话框的拖放IDE。但那将是它不自由的众多原因之一。