簡體   English   中英

Wix 工具集不會在所有 vs2017 IDE 中安裝目標

[英]Wix toolset doesn't install targets in all vs2017 IDEs

我工作的公司使用 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 中安裝該擴展。

免責聲明:我在 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>

• 最重要的部分:將CustomAction放在InstallUISequence CostFinalize之前

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM