从MSI删除默认对话框

时间:2018-09-21 15:18:04

标签: .net wix windows-installer

我有一个引导程序,其中包含许多msi文件。其中一些需要用户输入才能配置某些功能。这些需要自定义配置的msi文件显示了太多需要删除的对话框,例如WelcomeDlg

我已经阅读了很多,但是找不到适合我实际需求的解决方案,因此我想知道它是否切实可行。因此,是否有可能显示需要用户交互的对话框,例如避免使用“欢迎”对话框或“完成”对话框?

谢谢!

2 个答案:

答案 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

1-标准引导程序应用程序

以下是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

在继续使用自定义引导程序之前:

2-自定义引导程序应用程序

据我所知,编写自定义的引导程序并不是在公园里散步,也不是我曾经有过的机会。文件似乎很少:Building a Custom Bootstrapper Application(我所知道的官方文件)。

我在各处都发现了以下真实示例,但还没有尝试过这些示例。如果您冒险走这条路,请分享您的看法:

  

更多

答案 1 :(得分:0)

WiX替代品 :在描述了 WiX的刻录功能之后,我开始认为可能不需要完成工作。它是开发人员的重担,而且涉及很多-尽管对于开发人员来说,实现所需的内容而没有太多问题应该是完全可管理的。灵活性很高。

商业部署工具选项InstallshieldAdvanced Installer具有GUI界面,可用于创建 setup.exe ,该界面将使用您收集的参数启动MSI文件

Installshield

Installshield 中,最新版本中有一个相当新的功能,称为 Installshield Suite Projects 。我不确定它有哪些版本(较高版本-例如“ Premium”)。它允许您“按顺序”安装各种文件: MSI MSP EXE MSU etc...

尽管我从未使用过它,但是我确信您可以相当轻松地创建套件GUI,并控制从哪种设置显示哪些对话框。我会用命令行静默安装它们。请至少检查一下下面的第一个链接-屏幕截图。它应该给您有关事物的基本概念。

某些链接

高级安装程序

高级安装程序具有高级选项,可在MSI主安装程序中包含必备软件和软件包,并允许您像Installshield一样创建新对话框。再次,我没有时间对其进行全面测试,但是下面是一些有关其使用的提示。

此功能围绕“ Prerequisites ”,“ Build ”和“ Dialogs”为中心”。在“ Build ”视图中,设置EXE输出。在“ Prerequisites ”中,选择顶级的“ Packages ”项,以获取内置的可用先决条件列表。右键单击“ Pre-Install ”以添加您自己的包。我不熟悉对话框的详细信息,但是您可以在“ Dialogs ”视图中进行操作。不是火箭科学是个好消息。

某些链接

我会在那停下来。链接已经太多了。