2017-06-22 75 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事實