MSBuild ищет неправильное место для Microsoft.VisualBasic.Core.targets - PullRequest
0 голосов
/ 31 октября 2019

Я настраиваю нового агента сборки TeamCity. Несколько конфигураций сборки, которые отлично работают на существующем агенте, терпят неудачу на новом агенте с такими ошибками (пробел, добавленный для ясности):

[22:14:32][someproject.vbproj] 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\Microsoft.VisualBasic.CurrentVersion.targets(322, 5): 
error MSB4019: The imported project 
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\Roslyn\Microsoft.VisualBasic.Core.targets" 
was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

Запишите путь в третьей строке после «Импортированный проект»,Ошибка правильная;папка существует, но файл там не существует. Однако файл Microsoft.VisualBasic.Core.targets действительно существует по несколько другому пути

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\Microsoft.VisualBasic.Core.targets

Есть ли простое исправление для этого, возможно, запись реестра, указывающая MSBuild, где искать?

1 Ответ

1 голос
/ 14 ноября 2019

Причина

  • На вашем компьютере установлено две копии VS 2017, Professional Edition и необработанные инструменты сборки.
  • Вы не установили биты VB для Professional,в то время как это делалось для Build Tools.
  • TeamCity предпочитает MSBuild из профессиональной версии.

Объедините все вышеперечисленное, проблема произошла.

Исправление

Вы должны либо заставить TeamCity использовать MSBuild из Build Tools, либо добавить VB к вашей установке VS Pro.

Ссылка

https://blog.lextudio.com/the-rough-history-of-msbuild-cc72a217fa98

...