首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vs2017工具集并不是在所有Wix IDE中都安装目标

vs2017工具集并不是在所有Wix IDE中都安装目标
EN

Stack Overflow用户
提问于 2019-01-07 00:17:24
回答 1查看 168关注 0票数 1

我工作的公司使用wix工具集创建了一个msi,它应该在Visual Studio中安装我们的扩展。在Visual Studio 2017年之前,一切都运行得很好。当在客户端的计算机上安装了一些VS的IDE时,例如Professional和Enterprise,我们的扩展将只安装在其中的一个上。有人知道如何解决这个问题吗?有没有办法迭代VS2017的IDE?编辑: VS2017中的安装代码如下:

代码语言:javascript
复制
<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中都安装该扩展。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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之前

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54063463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档