我工作的公司使用wix工具集创建了一个msi,它应该在Visual Studio中安装我们的扩展。在Visual Studio 2017年之前,一切都运行得很好。当在客户端的计算机上安装了一些VS的IDE时,例如Professional和Enterprise,我们的扩展将只安装在其中的一个上。有人知道如何解决这个问题吗?有没有办法迭代VS2017的IDE?编辑: VS2017中的安装代码如下:
<Directory Id="VS2017_IDE_DIR">
<Directory Id="VS2017_EXTENSIONS_DIR">
<Directory Id="VS2017_MYCOMPANY_EX" Name="MYCOMPANY">
<Directory Id="VS2017_AUTORUNNER_EX" Name="MYCOMPANY Extension">
<Directory Id="VS2017_AUTORUNNER_EX_VERSION" Name="$(var.MajorAndMinorVersion)">
<Component Id="VS2017_AUTORUNNER_EXTENSIONSHORTCUTS" Guid="">
<Condition>VS2017DEVENV</Condition>
<CreateFolder />
<util:RestartResource Path="[VS2017DEVENV]"/>
<RemoveFolder Id="REMOVE_VS_VERSION_VS2017" On="uninstall" Directory="VS2017_MYCOMPANY_EX" />
<RemoveFolder Id="REMOVE_VS2017_EXTENSIONS" On="uninstall" Directory="VS2017_AUTORUNNER_EX" />
<RemoveFolder Id="REMOVE_VS2017_MYCOMPANY_EX" On="uninstall" Directory="VS2017_AUTORUNNER_EX_VERSION" />
<File Source="$(var.ManagedBinariesDir)VisualStudioExtension\extension.vsixmanifest" Name="extension.vsixmanifest"
Id="extension.vsixmanifest_VS2017" />
<File Source="$(var.ManagedBinariesDir)VisualStudioExtension\MYCOMPANY.VSExtension.pkgdef"
Name="MYCOMPANY.VSExtension.pkgdef" Id="MYCOMPANY.AutoRunner.pkgdef_VS2017" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>如上所述,此代码仅在VS 2017的一个IDE中安装扩展,我希望在所有VS 2017 IDE中都安装该扩展。
发布于 2019-03-18 20:16:55
免责声明:我在Typemock --单元测试公司工作
我们的Wix安装程序也遇到了同样的问题,下面是你需要做的:
·为每个VS 2017实例创建属性:
<Property Id="VS2017_INSTANCE_1" />
<Property Id="VS2017_INSTANCE_2" />
<Property Id="VS2017_INSTANCE_3" />
·在vswhere (定位所有已安装的VS 2017路径的工具)的帮助下为它们赋值:
添加一个激活vswhere的CustomAction,并将路径分配给属性。
·像你上面写的那样,为这些属性中的每一个创建一段代码:
<Directory Id="VS2017_INSTANCE_1">
...
</Directory>
<Directory Id="VS2017_INSTANCE_2">
...
</Directory>
<Directory Id="VS2017_INSTANCE_3">
...
</Directory>
·最重要的部分:在InstallUISequence中,将CustomAction放在CostFinalize之前
https://stackoverflow.com/questions/54063463
复制相似问题