Я пытаюсь обновить расширение Visual Studio, чтобы оно было совместимо с установкой в Visual Studio 2017. Я выполнил шаги и примечания на каждой из следующих страниц (и других, которые я искал):
- https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/extensibility/faq-2017.md#can-i-build-a-vsix-v3-with-visual-studio-2015
- http://www.visualstudioextensibility.com/2017/01/10/its-time-to-change-the-vsix-manifest-of-your-extension-to-v3-for-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) как на моем локальном компьютере, так и на рассматриваемом сервере сборки.