我有一个引导程序,其中包含许多msi
文件。其中一些需要用户输入才能配置某些功能。这些需要自定义配置的msi
文件显示了太多需要删除的对话框,例如WelcomeDlg
。
我已经阅读了很多,但是找不到适合我实际需求的解决方案,因此我想知道它是否切实可行。因此,是否有可能仅显示需要用户交互的对话框,例如避免使用“欢迎”对话框或“完成”对话框?
谢谢!
答案 0 :(得分:0)
自定义GUI :要在此处的顶部进行简要回答:您可以编写自己的GUI,该控件可让您控制设置GUI中的“所有内容”,而无需显示每个MSI安装时拥有自己的内部GUI。
您可以通过自己的GUI(无论选择哪种方式进行设计)来收集参数,并使用给定参数在给定的参数下以静默方式调用每个MSI文件的安装,并使用命令从自定义引导程序中执行此操作。这是可能的,但不能野餐。请阅读下面的摘要-不够,但这就是我为您准备的。
请注意,the WiX installer itself uses such a custom Burn GUI (因此可以作为这种自定义GUI外观的实时示例)。换句话说,here is WiX's own installer source code for its Managed Bootstrapper Application(对于实际的WiX 3安装程序本身)。
刻录是 bootstrapper
, downloader
, chainer
和 engine
。每个Burn捆绑包(setup.exe
)都具有一个“ Bootstrapper Application
”,该元素实际上构成了安装程序的GUI-驱动了Burn引擎。默认情况下使用a standard bootstrapper application,但是您可以完全编写自己的引导程序GUI。引导程序应用程序(BA)是由Burn引擎加载的DLL。
标准引导程序应用程序可以通过各种方式进行自定义,而自定义引导程序应用程序可以完全自定义-显然。该引导程序可以用托管代码或本机代码编写。
从此处开始阅读刻录文档:Building Installation Package Bundles。
以下是WiX官方文档的摘录,以查看“ 召唤”标准引导程序应用程序所需的基本标记,以将其编译为您的 setup.exe
(多次喊“ 668-野兽的邻居”,如果在Visual Studio中,则按“ Build”):
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
</Chain>
</Bundle>
</Wix>
让我不重复其他任何内容,但请转而发送给您有关该主题的官方文档:Working with WiX Standard Bootstrapper Application。
在继续使用自定义引导程序之前:
据我所知,编写自定义的引导程序并不是在公园里散步,也不是我曾经有过的机会。文件似乎很少:Building a Custom Bootstrapper Application(我所知道的官方文件)。
我在各处都发现了以下真实示例,但还没有尝试过这些示例。如果您冒险走这条路,请分享您的看法:
https://github.com/rstropek/Samples/tree/master/WiXSamples/CustomBurnUI
- 更多关于WiX其他方面的WiX样本发现了一个或两个以上的水平
更多 :
答案 1 :(得分:0)
WiX替代品 :在描述了 WiX的刻录功能之后,我开始认为可能不需要完成工作。它是开发人员的重担,而且涉及很多-尽管对于开发人员来说,实现所需的内容而没有太多问题应该是完全可管理的。灵活性很高。
商业部署工具选项Installshield和Advanced Installer具有GUI界面,可用于创建 setup.exe
,该界面将使用您收集的参数启动MSI文件
在 Installshield 中,最新版本中有一个相当新的功能,称为 Installshield Suite Projects 。我不确定它有哪些版本(较高版本-例如“ Premium”)。它允许您“按顺序”安装各种文件: MSI
, MSP
, EXE
, MSU
, etc...
。
尽管我从未使用过它,但是我确信您可以相当轻松地创建套件GUI,并控制从哪种设置显示哪些对话框。我会用命令行静默安装它们。请至少检查一下下面的第一个链接-屏幕截图。它应该给您有关事物的基本概念。
某些链接 :
高级安装程序具有高级选项,可在MSI主安装程序中包含必备软件和软件包,并允许您像Installshield一样创建新对话框。再次,我没有时间对其进行全面测试,但是下面是一些有关其使用的提示。
此功能围绕“ Prerequisites
”,“ Build
”和“ Dialogs
”为中心”。在“ Build
”视图中,设置EXE输出。在“ Prerequisites
”中,选择顶级的“ Packages
”项,以获取内置的可用先决条件列表。右键单击“ Pre-Install
”以添加您自己的包。我不熟悉对话框的详细信息,但是您可以在“ Dialogs
”视图中进行操作。不是火箭科学是个好消息。
某些链接 :
我会在那停下来。链接已经太多了。