Использование Microsoft.Build с langversion 7 - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть небольшая программа для компиляции и развертывания моего проекта. Он работал идеально более года. Однако мы перешли на 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;
...