升级Visual Studio扩展以包含Visual Studio 2017兼容性时出现问题



我正在尝试更新Visual Studio扩展以兼容Visual Studio 2017中的安装。我遵循了以下页面中的步骤和注释(以及我搜索过的其他页面(:

  • https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/extensibility/faq-2017.md#can-i-build-a-vsix-v3与视觉研究-2015
  • http://www.visualstudioextensibility.com/2017/01/10/its-time-to-change-the-vsix-manifest-of-your-extension-to-v3-for-visual-studio-2017-compatibility/

最终,项目(和扩展(将在本地成功构建,但它在我们的TFS构建服务器上失败,并出现以下错误:

"d:examplemyprojMyExtensionMyExtension.csproj" (Rebuild target) (25:7) ->
d:examplemyprojpackagesMicrosoft.VisualStudio.Sdk.BuildTasks.14.0.14.9.23buildMicrosoft.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)MSBuild12.0binMicrosoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:Program Files (x86)MSBuild12.0binMicrosoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified. [d:examplemyprojMyExtensionMyExtension.csproj]

它正在寻找的程序集来自微软。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 AssembliesMicrosoftFramework.NETFrameworkv4.5.1Microsoft.Build.Tasks.v4.0.dll".

有没有其他人有过这个错误的经验,告诉我为什么我们的构建服务器会出现这个问题?

附加说明:我正在本地计算机和有问题的生成服务器上运行Visual Studio 2015(更新3(。

它正在寻找的程序集来自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。使用TFS生成时,请确保从路径C:Program Files (x86)MSBuild14.0Bin调用MSBuild。因此,请检查TFS定义中的MSBuild版本是14.0还是MSBuild路径是C:Program Files (x86)MSBuild14.0Bin

此外,请检查您是否在构建服务器上安装了.net framework 4.5.1,如果没有,请安装它,然后重新构建解决方案。

希望这能有所帮助。

如果您让它在本地工作,只需在TFS上创建一个新项目并传输它,在计算机中映射项目后,打开项目时,任何丢失的包都将被重新存储。

最新更新