WiX:制作可点击的安装程序,该安装程序还会生成详细的安装日志文件

时间:2018-08-10 12:08:36

标签: .net logging wix windows-installer

这是一个真的基本问题,但我似乎找不到答案。我有一个使用引导程序的安装程序。要在拥有引导程序时获取详细的日志文件,只需在调用exe时添加一些参数即可:

MyInstaller.exe / l log.txt

问题是,安装程序必须是可单击的(只需单击即可显示 MyInstaller.exe 的图标)即可安装-我不允许询问安装程序。进行安装的员工会打开命令行等。因此,我需要一种使它可单击的 并创建详细文件的方法。

显而易见的答案(我可能会做的)是创建一个包装器exe。在该exe中,创建具有上述字符串的进程。但是,我想知道是否有一种可以使用WiX的方法,以便单击 MyInstaller.exe 时,它不仅会安装,还会创建详细的日志文件,使我不必创建包装器exe。

2 个答案:

答案 0 :(得分:1)

恐怕我从未见过任何方法可以默认配置WIX。

但是您真的需要每次安装的日志吗? 如果通过双击执行安装程序失败,是否也不允许员工要求comandline再次致电安装程序?这是我的首选方式。

我不知道这是否可行,但是还有另一种方法,可以修改重现期或使用组策略:https://support.microsoft.com/en-us/help/223300/how-to-enable-windows-installer-logging

如果这一切都不起作用,我认为您应该打包安装程序。也许调用安装程序的批处理文件就足够了。

关于, 帕特里克

答案 1 :(得分:1)

简单 :坦率地说,我喜欢已经提到的批处理文件方法。还是通过分发工具(例如SCCM)推出所有内容,但这显然不适合您?只是检查。以下大多数“选项”只是解决方法,而不是首选方法。


默认详细日志记录 :据我了解,默认情况下,所有MSI和刻录捆绑包本身都启用了详细日志记录? FireGiant - Burn Log File(朝下)。也许这还不够?但是,告诉您的客户在TEMP文件夹中找到日志很简单?只需按修改的时间/日期排序即可在安装后直接找到日志?

刻录日志位置 :也许是因为您需要将所有日志都放置在便于客户访问的位置,例如,放在台式机的文件夹中或您是从当前文件夹启动setup.exe的吗?还是特定的地方-甚至网络共享? Along the lines of what is asked for in this question。如果这是您自己的应用程序,我想您可以使用a custom bootstrapper application(我从未尝试过)?但是正如WiX开发人员在我链接到的类似问题中所解释的那样,这样的应用程序可以访问所有日志路径。我想您也可以在安装结束时在对话框中显示日志内容吗?我认为这是可能的。


疯狂方法 :顺便说一句,hard coding an output path seems to work in a Bundle,但这是疯狂的使用方式,除非您为内部,公司用途而构建并且知道输出的内容路径被保证是。本质上在<Log PathVariable="c:\installerlog.txt"/>下添加<Bundle>。我没有测试它是否适用于UNC路径。

包装EXE :听起来很笨拙,但我想应该可以用。我不喜欢self-extracting archivessecurity issuesunexpected runtime dependencies等...),但是您可以将setup.exe放在带有命令行运行的自解压存档中吗?发挥自己的包装程序的所有潜在错误?我昨天刚刚在7-Zip上写了这个答案:Error Creating a 7-zip installer package

似乎您可以使用以下命令创建包装器(从常规的7-Zip帮助文件-而不是从SDK):

 copy /b 7zSD.sfx + config.txt + archive.7z archive.exe

7-Zip帮助文件中的命令行。

  • 部分"-sfx (Create SFX archive) switch"
  • 路径(在帮助文件中): Command Line Version => Switches => -sfc (Create SFX Archive 。)

config.txt

;!@Install@!UTF-8!
Title="Tester"
BeginPrompt="Do you want to install Tester?"
ExecuteFile="setup.exe"
ExecuteParameters="/l \\Server\Logs\Tester\Tester.log"
;!@InstallEnd@!

这只是未经测试的模型,可让您了解其工作方式。滚动自己的EXE对于内部应用程序可能会正常工作,但是对于全球发行版,我始终担心真正令人惊讶和意外的错误(odd runtime dependencieslocalization issuesweird OS incompatibilitiessecurity software interference也是一个巨大的角色,依此类推...)。

来自成熟的部署工具的启动程序已经过现实生活的测试-经常被成千上万的用户甚至数百万的用户使用-我认为很难与自制的解决方案相匹配。

我不相信自解压的归档文件会比使用已部署工具中的正确setup.exe启动器的信任程度高,但通过“绝对的里程”和先前的实际使用情况,它们可能比自制的解决方案更好。世界测试-只要您选择成熟的工具即可。在这种情况下,我不确定7-Zip是最好的工具。也许是另一个更成熟的工具,例如WinZip或WinRAR?我不太确定。


某些链接

相关问题