Msi 安装程序被 vsixinstaller 错误 "1009" 阻止:InstallByMsiException



我有一个Wix安装程序来安装我的Visual Studio扩展(vsix(+相关文件。但是,当我在"安装目标"下的 vsix 清单中勾选"此 VSIX 由 Windows 安装程序安装"复选框时(这会将属性"InstalledByMsi"添加到标记并将其值设置为"true"(,安装程序退出,我在日志中发现以下错误:

MSI (s) (7C:2C) [12:47:13:966]: Executing op: CustomActionSchedule(Action=viuD024AF088F5BE8AD5BD310C0F79AE3DF,ActionType=1074,Source=C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDEVSIXInstaller.exe,Target=/q  "C:UsersmeAppDataLocalMy CompanyMyPluginMyPlugin.vsix",)
CustomAction viuD024AF088F5BE8AD5BD310C0F79AE3DF returned actual error code 1009 (note this may not be 100% accurate if translation happened inside sandbox)

快速谷歌显示VSIXInstaller的错误1009.exe称为InstallByMsiException。

取消选中此复选框时,它绝对可以正常工作,但这意味着Visual Studio允许用户通过扩展管理器卸载扩展,扩展管理器不会包含vsix之外的文件或Windows安装程序创建的注册表项。

我错过了什么设置吗?我能寻找什么?

因此,事实证明,如果您通过 msi 安装程序安装 vsix 文件,则需要自己提取文件并手动放置它们。如果您为所有用户安装,这工作正常,但我不确定在您要安装到 AppData 时该怎么做,因为扩展路径似乎是在该实例中自动生成的。

Wix 工具包具有用于安装 vsix 文件的良好包装器功能这一事实具有误导性,因为它不会自动解压缩 vsix 文件,并且无法安装设置了 InstalledByMsi 属性的 vsix