在MSI安装程序中使用C#创建自定义对话框

时间:2011-11-07 05:51:38

标签: c# visual-studio windows-installer

我们(我的项目团队)拥有VS 2010 Windows应用程序的现有MSI安装程序。我们正在使用许可证文件来验证Windows安装。我们使用标准的VS安装项目来进行安装。

目前,我们在MSI安装中使用测试框来获取许可文件路径,因此用户必须手动复制并粘贴许可文件路径。我想通过添加“浏览文件”按钮来更改此选项,该按钮显示浏览文件对话框以选择许可文件,并在选择文件时自动填充文本框。

我使用Orca工具修改UI,以便在安装UI中的现有文本框旁边添加按钮。

我的问题是:是否可以编写一些C#托管代码来显示,比如打开文件对话框选择许可文件然后填充文本框。 我知道通过编写C / C ++代码可以实现这一点。 我看到很多人使用WIX工具集来创建安装文件。现在,我无法创建一个新的安装程序安装程序项目,因为它涉及学习WIX,我现在没有时间。

2 个答案:

答案 0 :(得分:1)

我不相信这是可能的。
开箱即用的MSI不支持托管代码,因此您将无法编写托管对话框。
但是,您可以编写引导程序以将自定义图形界面附加到安装程序。但这很复杂。

我知道你写过你不能在这个阶段转换为WIX,但我可以向你保证,如果你很了解MSI结构,那么学习它将非常容易。
而且,您可以使用SharpSetup为安装程序创建C#GUI。

答案 1 :(得分:1)

这是可能的(请参阅DTF之类的工具,可以将.NET代码包装在非托管DLL中),但是对于调用GetOpenFileNameMsiSetProperty的自定义操作的复杂程度,我建议避免对.NET框架的额外依赖。