У меня есть небольшая программа для компиляции и развертывания моего проекта. Он работал идеально более года. Однако мы перешли на C# 7.0 и. Net Framework 4.7.2. Мне пришлось обновить Microsoft.Build.dll. Я взял его из Visual Studio 2019 Enterprise версии 15.1.0.0.
Assembly Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Build.dll
Я получаю ошибку компилятора:
Csc: : ERROR CSC(0,0): Invalid option '7.0' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6.
Не совместима ли dll с C # 7.0 или выше? Есть ли более высокая версия dll, о которой я не знаю? Или я что-то напутал? Вот соответствующий фрагмент кода:
string projectFileName = tempdir + @"mySolution.sln";
BasicLogger Logger = new BasicLogger();
var buildParamters = new BuildParameters(new ProjectCollection());
buildParamters.Loggers = new List<Microsoft.Build.Framework.ILogger>() { Logger };
var globalProperty = new Dictionary<String, String>();
globalProperty.Add("Configuration", "Release");
globalProperty.Add("Platform", "Any CPU");
globalProperty.Add("OutputPath", tempdir + @"Program");
globalProperty.Add("TargetFrameworkVersion", "v4.7.2");
BuildManager.DefaultBuildManager.ResetCaches();
var buildRequest = new BuildRequestData(projectFileName, globalProperty, null, new String[] { "Build" }, null);
var buildResult = BuildManager.DefaultBuildManager.Build(buildParamters, buildRequest);
// Build log
string LoggerMessage = Logger.GetLogString;