有一个被称为BeforeInstall的内置事件,现在这个事件没有正确触发,当msi安装向导开始安装时会触发,到那时为我的先决条件安装已经太迟了,你怎么去改变内置事件的行为或我应该用处理程序实现我自己的事件?
答案 0 :(得分:0)
名字非常糟糕。它不是在安装之前。您可以运行代码的Visual Studio提供的所有内容实际上都是在安装完所有文件后运行的。这就是为什么你需要一个先决条件处理程序,这是Visual Studio安装程序提供的标准先决条件列表。
尽管Bootstrap Manifest Generator可能仍然有效,但使用WiX引导程序的IMO更好。请注意,您不需要使用WiX构建MSI文件,但可以使用引导程序包。以下是一些示例和文档:
http://wixtoolset.org/documentation/manual/v3/bundle/
https://www.firegiant.com/wix/tutorial/net-and-net/bootstrapping/
关于这与提供先决条件Dll相关的后续评论,简单的解决方案是将其作为文件添加到您的安装项目中,并将其安装在所需的文件夹中。安装文件后,VS安装程序中的所有安装自定义操作都会运行。您可能正在使用某些“项目输出”设置作为MSI构建的输入,但您只需将Dll添加为单个文件即可。一些Dll具有可再发行的软件包(合并模块或可执行文件)以确保正确安装 - 如果您的其中之一是这是正确的方法。