Skip to content

Commit fd409fe

Browse files
committed
Fix calculating SpecialFolder (ProgramFiles) based on version and edition
It keeps old behavior for BuildTools All new versions (2022+) for other editions will be taken from x64 folder.
1 parent 3cfa264 commit fd409fe

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

source/Nuke.Common/Tools/MSBuild/MSBuildToolPathResolver.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ private static IEnumerable<string> ResolveInternal(MSBuildVersion? msBuildVersio
4343
from version in new[] { MSBuildVersion.VS2026, MSBuildVersion.VS2022, MSBuildVersion.VS2019, MSBuildVersion.VS2017 }
4444
from platform in s_platforms
4545
from edition in typeof(VisualStudioEdition).GetEnumValues<VisualStudioEdition>()
46-
let folder = version == MSBuildVersion.VS2022 && edition != VisualStudioEdition.BuildTools
47-
? SpecialFolders.ProgramFiles
48-
: SpecialFolders.ProgramFilesX86
46+
let folder = GetProgramFilesFolder(version, edition)
4947
select GetFromVs2017Instance(version, platform, edition, folder));
5048

5149
instances.AddRange(
@@ -98,6 +96,24 @@ private static Instance GetVs2013To2015Instance(MSBuildPlatform platform, MSBuil
9896
: basePath);
9997
}
10098

99+
private static SpecialFolders GetProgramFilesFolder(MSBuildVersion version, VisualStudioEdition edition)
100+
{
101+
if (edition == VisualStudioEdition.BuildTools)
102+
{
103+
return SpecialFolders.ProgramFilesX86;
104+
}
105+
106+
return version switch
107+
{
108+
MSBuildVersion.VS2013 => SpecialFolders.ProgramFilesX86,
109+
MSBuildVersion.VS2015 => SpecialFolders.ProgramFilesX86,
110+
MSBuildVersion.VS2017 => SpecialFolders.ProgramFilesX86,
111+
MSBuildVersion.VS2019 => SpecialFolders.ProgramFilesX86,
112+
// Versions VS2022+ are 64-bit
113+
_ => SpecialFolders.ProgramFiles
114+
};
115+
}
116+
101117
private static string GetVersionFolder(MSBuildVersion version)
102118
{
103119
return version switch

0 commit comments

Comments
 (0)