Visual Studio 2017似乎在可扩展性领域改变了很多东西 https://docs.microsoft.com/en-us/visualstudio/extensibility/breaking-changes-2017
以前关于从MSI安装VSIX的建议现在看来已经过时了(Deploying VSIX using MSI installer),但似乎没有关于如何实现它的信息。
VS2017 FAQ意味着VSIX安装程序可以(应该?)手动启动,这是推荐方法吗?
vsixinstaller.exe / q / appidinstallpath:“c:\ program files (x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ devenv.exe“ / appidname:“Visual Studio”/ logFile: / skuName:Enterprise /skuVersion:15.0.25810.0 “KendoUI.Mvc.VSPackage.vsix”
它还要求您知道vsixinstaller.exe的路径。这是从哪里来的? (更新似乎MS工具vsixbootstrapper会找到vsixinstaller.exe并通过您的参数传递给它,因此无需直接找到它。。
此外,您需要了解所安装的Visual Studio的所有版本,它看起来比应该Programmatically finding the VS2017 installation directory更复杂。
我错过了什么或现在这真的很复杂吗?
答案 0 :(得分:4)
现在它真的很复杂。安装扩展可以触发VS安装程序以安装所需的工作负载,这些工作负载在通过MSI发生时都会失败。已经讨论过如何使其适用于WiX,结论是,如果不改变VSIXInstaller.exe的工作方式,它就无法安全地工作:http://lists.wixtoolset.org/pipermail/wix-devs-wixtoolset.org/2017-February/thread.html。
答案 1 :(得分:0)
经过研究,我认为目前我们有以下选择:
<ExePackage>
安装的,因此您必须考虑一种新的卸载策略。 我没有对选项4进行更深入的研究。对我们来说,选项3是足够的。 VSIXInstaller提供了一些有用的新命令行开关,例如/ p / sp / f等。该开关允许以“相当”模式执行安装。当然,如果缺少必要的先决条件或无法关闭阻止进程,则这将失败。或应用于较旧的VSIX安装程序(对于多实例安装程序很重要!)。
进一步注意,VS2017的VSIXInstaller.exe
也会等待MSBuild关闭。不幸的是,我们的构建脚本正在测试新创建的安装程序...它将不再起作用。