Проблемы с обновлением расширения Visual Studio для включения совместимости с Visual Studio 2017

Я пытаюсь обновить расширение Visual Studio, чтобы оно было совместимо с установкой в ​​Visual Studio 2017. Я выполнил шаги и примечания на каждой из следующих страниц (и других, которые я искал):

В конце концов, проект (и расширение) будет успешно собран локально, но он не работает на нашем сервере сборки TFS со следующей ошибкой:

"d:\example\myproj\MyExtension\MyExtension.csproj" (Rebuild target) (25:7) ->
  d:\example\myproj\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.9.23\build\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets(16,5): error MSB4175: The task factory "CodeTaskFactory" could not be loaded from the assembly "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified. [d:\example\myproj\MyExtension\MyExtension.csproj]

Сборка, которую он ищет, поступает из файла Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets, а в целевом (12.0) каталоге MSBuild рассматриваемый файл (Microsoft.Build.Tasks.v4.0.dll) не содержит не существует. Локальная сборка разрешает рассматриваемый файл из папки Reference Assembly в системе:

6>  Dependency "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
6>      Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Microsoft.Build.Tasks.v4.0.dll".

Кто-нибудь еще имел опыт работы с этой ошибкой, чтобы сообщить мне, почему на нашем сервере сборки возникает эта проблема?

Дополнительное примечание: я запускаю Visual Studio 2015 (обновление 3) как на моем локальном компьютере, так и на рассматриваемом сервере сборки.


person kfelvoirny    schedule 07.12.2018    source источник


Ответы (2)


Сборка, которую он ищет, поступает из файла Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets, а в целевом (12.0) каталоге MSBuild рассматриваемый файл (Microsoft.Build.Tasks.v4.0.dll) не содержит не существует.

Согласно сообщению об ошибке «C: \ Program Files (x86) \ MSBuild \ 12.0», похоже, вы используете MSBuild 12.0 вместо MSBuild 14.0 на сервере сборки. Убедитесь, что вы вызываете MSBuild по пути C:\Program Files (x86)\MSBuild\14.0\Bin при сборке с TFS. Итак, проверьте, является ли версия MSBuild 14.0 или путь MSBuild C:\Program Files (x86)\MSBuild\14.0\Bin в определении TFS.

Кроме того, проверьте, установили ли вы .net framework 4.5.1 на сервере сборки, если нет, установите его, а затем перестройте решение.

Надеюсь это поможет.

person Leo Liu-MSFT    schedule 10.12.2018
comment
Спасибо за предложение. Я начал копаться в самих файлах проекта (csproj) в решении и обнаружил, что некоторые из них (включая проблемный проект) нацелены на версию 12.0. Обновление до 4.0 устранило рассматриваемую ошибку. У меня теперь новая ошибка: error VSSDK1001: Unable to find Microsoft.VisualStudio.CommandTable.VSCTCompiler type in '...\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.9.23\tools\VSSDK\bin\VSCT.exe' Assembly. ... но это тема для другого поста. Спасибо! - person kfelvoirny; 10.12.2018

Если он у вас работает локально, просто создайте новый проект в TFS и перенесите его, любые недостающие пакеты будут повторно сохранены, когда вы откроете проект после того, как сопоставите его на своем компьютере.

person elias.dominguez    schedule 07.12.2018