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

在MSI安装程序中使用C#创建自定义对话框,c#,visual-studio,windows-installer,C#,Visual Studio,Windows Installer,我们(我的项目团队)有一个VS 2010 windows应用程序的现有MSI安装程序。我们正在使用一个许可证文件来验证windows安装。我们正在使用标准VS安装项目进行安装 目前,我们正在MSI安装中使用一个测试盒来获取许可证文件路径,因此用户必须手动复制和粘贴许可证文件路径。我想通过添加“浏览文件”按钮来改变这一点,该按钮显示“浏览文件”对话框以选择许可证文件,并在选择文件时自动填充文本框 我已经使用Orca工具修改了UI,以便在安装UI的现有文本框旁边添加一个按钮 我的问题是:是否可以编写

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

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

我已经使用Orca工具修改了UI,以便在安装UI的现有文本框旁边添加一个按钮

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

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

我知道你在这个阶段写的你不能转换成WIX,但我可以向你保证,如果你对MSI结构很了解,学习它会很容易。

然后,您可以使用为安装程序创建一个C#GUI。

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

感谢SharpSetup的推荐。不幸的是,从昨天开始,他们页面上的所有下载链接都被破坏了。是的,他们的项目已经有一段时间没有活动了。相反,WixSharp做的同样多。