C# 7, msbuild и жопа как она есть
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.11.16 20:54
Оценка:
Вобщем, эксперименты с C# 7 в большом затруднении.
MS решил теперь компиляторы с msbuild не поставлять, а распространять в виде nuget пакетов. Ставишь пакетик с нужной версией, и оно именно этот компилятор и использует.
Соответственно, выложен и пакет с новыми компиляторами версии 2.0.0-rc, зависит от .NET 4.5. Пакет ставится и ... нас ждет облом. Новый компилятор запускается и валится с такими ошибками:
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018: The "Csc" task failed unexpectedly.
[S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018: System.TypeLoadException:Could not load type 'Microsoft.CodeAnalysis.BuildPaths' from assembly 'Microsoft.CodeAnalysis, Version=2.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
[S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018:    at Microsoft.CodeAnalysis.BuildTasks.ManagedCompiler.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands)
[S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018:    at Microsoft.Build.Utilities.ToolTask.Execute()
[S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
[S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]
S:\Work\CodeJam\packages\Microsoft.Net.Compilers.2.0.0-rc\tools\Microsoft.CSharp.Core.targets(71,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() [S:\Work\CodeJam\Main\src\CodeJam.Main.csproj]

Microsoft.CodeAnalysis.dll внутри пакета рядом с csc.exe лежит. Версия 2.0.0.61104. Структурка Microsoft.CodeAnalysis.BuildPaths там имеется. internal, но InternalsVisibleTo для csc имеется. Почему оно не может его загрузить — я ХЗ.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: C# 7, msbuild и жопа как она есть
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.11.16 20:57
Оценка:
Хотя вот если взять msbuild изнутри студии, то оно таки собирается.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: C# 7, msbuild и жопа как она есть
От: Sinix  
Дата: 23.11.16 21:29
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Хотя вот если взять msbuild изнутри студии, то оно таки собирается.


По сборке — осталась только вот эта ошибка:
https://github.com/appveyor/ci/issues/1179#issuecomment-262628556

И, возможно, придётся нюгет костылями подпирать
https://github.com/NuGet/Home/issues/3975#issuecomment-262052291
(только путь на community-студию поправить).
Re: C# 7, msbuild и жопа как она есть
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.11.16 10:39
Оценка: +1
По результатам разборок — изменилась схема инсталляции msbuild. Доки как искать его в новой схеме пока нет, но скоро обещают выложить. Пока серверная сборка жестко привязана к установленной VS 2017 RC Community Edition (точнее к установленному msbuild в каталоге community).
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: C# 7, msbuild и жопа как она есть
От: Sinix  
Дата: 25.11.16 12:16
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Пока серверная сборка жестко привязана к установленной VS 2017 RC Community Edition (точнее к установленному msbuild в каталоге community).


RC говорите?

This error points to a number of bugs in how Visual Studio is (trying to) invoke MSBuild. First of all, the project name is not NTObjectViewer_Launcher, it is NTObjectViewer.Launcher. Second, Visual Studio is not properly quoting paths that contain spaces. Third, the path in the first line does not exist on my system. (It is a portmanteau of the path to devenv.exe, and the relative path to the offending C++ project from the solution file.) Fourth, as I understand it solution folders should have no effect on how MSBuild operates. It appears that Visual Studio is passing a path containing a solution folder to MSBuild on the command line. It should not do this.

(с)

как-то так
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.