2017-06-22 101 views
1

我有一个Wix安装程序来安装我的Visual Studio扩展(vsix)+相关文件。但是,当我在vsixmanifest的“安装目标”下勾选“这个VSIX由Windows安装程序安装”cheeckbox(这将“属性InstalledByMsi”添加到标签并将它的值设置为“true”)时,安装程​​序退出,我发现在日志中的以下错误:由vsixinstaller错误“1009”阻止的Msi安装程序:InstallByMsiException

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

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

这个复选框未勾选就可以正常工作,但这意味着visual studio允许用户通过扩展管理器卸载扩展,该扩展管理器不包含vsix之外的文件或windows安装程序创建的注册表项。

有一些设置我错过了吗?我可以找什么?

回答

1

事实证明,如果您通过ms​​i安装程序安装vsix文件,则需要自行提取文件并手动放置它们。如果您为所有用户安装,此工作正常,但我不确定在要安装到AppData的情况下如何处理,因为扩展路径似乎是在该实例中自动生成的。

的维克斯工具包具有安装VSIX文件的一个很好的包装函数是一种误导,因为它不会自动执行VSIX文件解包并不能与InstalledByMsi属性设置

安装VSIX事实