Skip to content

Commit d5d7b03

Browse files
committed
Fix for the missing configuration of the VS_VSIX_INSTALLER_PATH property for VS2017–VS2026.
Modified VsixPackage fragment. Updated tests.
1 parent 26ddda1 commit d5d7b03

2 files changed

Lines changed: 50 additions & 2 deletions

File tree

src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public void CanBuildUsingVsixPackage()
2727
"CustomAction:SetVS2012Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2012_VSIX_INSTALLER_PATH]\t",
2828
"CustomAction:SetVS2013Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2013_VSIX_INSTALLER_PATH]\t",
2929
"CustomAction:SetVS2015Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2015_VSIX_INSTALLER_PATH]\t",
30+
"CustomAction:SetVS2017Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2017_VSIX_INSTALLER_PATH]\t",
31+
"CustomAction:SetVS2019Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2019_VSIX_INSTALLER_PATH]\t",
32+
"CustomAction:SetVS2022Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2022_VSIX_INSTALLER_PATH]\t",
33+
"CustomAction:SetVS2026Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2026_VSIX_INSTALLER_PATH]\t",
3034
"CustomAction:vimLa9TyFoAVwf8JmA0_ZJHA69J2fo\t3122\tVS_VSIX_INSTALLER_PATH\t/q \"[#filzi8nwT8Ta133xcfp7qSIdGdRiC0]\" /admin\t",
3135
"CustomAction:viuMpl8IvFSDAzTulrmpAzBwAmCRTQ\t1074\tVS_VSIX_INSTALLER_PATH\t/q \"[#filzi8nwT8Ta133xcfp7qSIdGdRiC0]\"\t",
3236
"CustomAction:vrmLa9TyFoAVwf8JmA0_ZJHA69J2fo\t3442\tVS_VSIX_INSTALLER_PATH\t/q /u:\"ExampleVsix\" /admin\t",
@@ -55,6 +59,10 @@ public void CanBuildUsingVsixPackageOnArm64()
5559
"CustomAction:SetVS2012Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2012_VSIX_INSTALLER_PATH]\t",
5660
"CustomAction:SetVS2013Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2013_VSIX_INSTALLER_PATH]\t",
5761
"CustomAction:SetVS2015Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2015_VSIX_INSTALLER_PATH]\t",
62+
"CustomAction:SetVS2017Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2017_VSIX_INSTALLER_PATH]\t",
63+
"CustomAction:SetVS2019Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2019_VSIX_INSTALLER_PATH]\t",
64+
"CustomAction:SetVS2022Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2022_VSIX_INSTALLER_PATH]\t",
65+
"CustomAction:SetVS2026Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2026_VSIX_INSTALLER_PATH]\t",
5866
"CustomAction:vimLa9TyFoAVwf8JmA0_ZJHA69J2fo\t3122\tVS_VSIX_INSTALLER_PATH\t/q \"[#filzi8nwT8Ta133xcfp7qSIdGdRiC0]\" /admin\t",
5967
"CustomAction:viuMpl8IvFSDAzTulrmpAzBwAmCRTQ\t1074\tVS_VSIX_INSTALLER_PATH\t/q \"[#filzi8nwT8Ta133xcfp7qSIdGdRiC0]\"\t",
6068
"CustomAction:vrmLa9TyFoAVwf8JmA0_ZJHA69J2fo\t3442\tVS_VSIX_INSTALLER_PATH\t/q /u:\"ExampleVsix\" /admin\t",
@@ -77,10 +85,18 @@ public void CanBuildUsingVsixPackageOnArm64()
7785
"VS2015_VSIX_INSTALLER_PATH",
7886
"VS2017_IDE_DIR",
7987
"VS2017_ROOT_FOLDER",
88+
"VS2017_VSIX_INSTALLER_PATH",
8089
"VS2017DEVENV",
90+
"VS2019_IDE_DIR",
8191
"VS2019_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED",
92+
"VS2019_ROOT_FOLDER",
93+
"VS2019_VSIX_INSTALLER_PATH",
94+
"VS2022_IDE_DIR",
8295
"VS2022_ROOT_FOLDER",
96+
"VS2022_VSIX_INSTALLER_PATH",
97+
"VS2026_IDE_DIR",
8398
"VS2026_ROOT_FOLDER",
99+
"VS2026_VSIX_INSTALLER_PATH",
84100
"WIX_DOWNGRADE_DETECTED",
85101
"WIX_UPGRADE_DETECTED",
86102
}, propertyResults);

src/ext/VisualStudio/wixlib/VsixPackage.wxs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
1+
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
22

33

44
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
@@ -28,6 +28,30 @@
2828
</RegistrySearch>
2929
</Property>
3030

31+
<Property Id="VS2017_VSIX_INSTALLER_PATH" Secure="yes">
32+
<DirectorySearchRef Id="VS2017EnvironmentDirectorySearch" Parent="VS2017DirectorySearch" Path="Common7\IDE">
33+
<FileSearch Id="WixVS2017VsixInstaller" Name="VSIXInstaller.exe" />
34+
</DirectorySearchRef>
35+
</Property>
36+
37+
<Property Id="VS2019_VSIX_INSTALLER_PATH" Secure="yes">
38+
<DirectorySearchRef Id="VS2019EnvironmentDirectorySearch" Parent="VS2019DirectorySearch" Path="Common7\IDE">
39+
<FileSearch Id="WixVS2019VsixInstaller" Name="VSIXInstaller.exe" />
40+
</DirectorySearchRef>
41+
</Property>
42+
43+
<Property Id="VS2022_VSIX_INSTALLER_PATH" Secure="yes">
44+
<DirectorySearchRef Id="VS2022EnvironmentDirectorySearch" Parent="VS2022DirectorySearch" Path="Common7\IDE">
45+
<FileSearch Id="WixVS2022VsixInstaller" Name="VSIXInstaller.exe" />
46+
</DirectorySearchRef>
47+
</Property>
48+
49+
<Property Id="VS2026_VSIX_INSTALLER_PATH" Secure="yes">
50+
<DirectorySearchRef Id="VS2026EnvironmentDirectorySearch" Parent="VS2026DirectorySearch" Path="Common7\IDE">
51+
<FileSearch Id="WixVS2026VsixInstaller" Name="VSIXInstaller.exe" />
52+
</DirectorySearchRef>
53+
</Property>
54+
3155
<Property Id="VS_VSIX_INSTALLER_PATH" Secure="yes" />
3256

3357
<!-- VWD2012 registers differently than the rest of Visual Studio, so search for it in the case VS2012 is missing. -->
@@ -46,7 +70,15 @@
4670
</Property>
4771

4872
<!-- Use the latest VS- or VWD-installed VSIXInstaller.exe. -->
49-
<SetProperty Action="SetVS2015Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2015_VSIX_INSTALLER_PATH]" Sequence="both" After="AppSearch" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2015_VSIX_INSTALLER_PATH" />
73+
<SetProperty Action="SetVS2026Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2026_VSIX_INSTALLER_PATH]" Sequence="both" After="AppSearch" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2026_VSIX_INSTALLER_PATH" />
74+
75+
<SetProperty Action="SetVS2022Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2022_VSIX_INSTALLER_PATH]" Sequence="both" After="SetVS2026Vsix" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2022_VSIX_INSTALLER_PATH" />
76+
77+
<SetProperty Action="SetVS2019Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2019_VSIX_INSTALLER_PATH]" Sequence="both" After="SetVS2022Vsix" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2019_VSIX_INSTALLER_PATH" />
78+
79+
<SetProperty Action="SetVS2017Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2017_VSIX_INSTALLER_PATH]" Sequence="both" After="SetVS2019Vsix" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2017_VSIX_INSTALLER_PATH" />
80+
81+
<SetProperty Action="SetVS2015Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2015_VSIX_INSTALLER_PATH]" Sequence="both" After="SetVS2017Vsix" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2015_VSIX_INSTALLER_PATH" />
5082
<SetProperty Action="Vwd2015VsixWhenVSAbsent" Id="VS_VSIX_INSTALLER_PATH" Value="[VWD2015_VSIX_INSTALL_ROOT]\Common7\IDE\VSIXInstaller.exe" Sequence="both" After="SetVS2015Vsix" Condition="NOT VS_VSIX_INSTALLER_PATH AND VWD2015_VSIX_INSTALL_ROOT" />
5183

5284
<SetProperty Action="SetVS2013Vsix" Id="VS_VSIX_INSTALLER_PATH" Value="[VS2013_VSIX_INSTALLER_PATH]" Sequence="both" After="Vwd2015VsixWhenVSAbsent" Condition="NOT VS_VSIX_INSTALLER_PATH AND VS2013_VSIX_INSTALLER_PATH" />

0 commit comments

Comments
 (0)