mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 04:18:43 +00:00
37 lines
1 KiB
C#
37 lines
1 KiB
C#
using System.IO;
|
|
using Microsoft.VisualStudio.Setup.Configuration;
|
|
|
|
namespace Cosmos.Build.Builder.Services
|
|
{
|
|
internal class FullMSBuildService : IMSBuildService
|
|
{
|
|
private readonly ISetupInstance2 _visualStudioInstance;
|
|
|
|
public FullMSBuildService(ISetupInstance2 visualStudioInstance)
|
|
{
|
|
_visualStudioInstance = visualStudioInstance;
|
|
}
|
|
|
|
public string GetMSBuildExePath()
|
|
{
|
|
var msBuildExePath = GetMSBuildExePathForVersion("15.0");
|
|
|
|
if (File.Exists(msBuildExePath))
|
|
{
|
|
return msBuildExePath;
|
|
}
|
|
|
|
msBuildExePath = GetMSBuildExePathForVersion("Current");
|
|
|
|
if (File.Exists(msBuildExePath))
|
|
{
|
|
return msBuildExePath;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private string GetMSBuildExePathForVersion(string version) =>
|
|
Path.Combine(_visualStudioInstance.GetInstallationPath(), "MSBuild", version, "Bin", "MSBuild.exe");
|
|
}
|
|
}
|