0

我正在尝试更新 Visual Studio 扩展以兼容 Visual Studio 2017 中的安装。我已按照以下每个页面(以及我搜索过的其他页面)中的步骤和注释进行操作:

我最初遇到了这篇文章中提到的一个单独的问题,该问题已得到解决。现在,项目(和扩展)继续在本地成功构建,但在我们的 TFS 构建服务器上失败并出现以下错误:

"d:\example\myproj\MyProj.csproj" (Rebuild target) (25:7) ->
  d:\example\myproj\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.9.23\tools\VSSDK\Microsoft.VisualStudio.Sdk.Common.targets(67,5): error VSSDK1001: Unable to find Microsoft.VisualStudio.CommandTable.VSCTCompiler type in 'd:\example\myproj\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.9.23\tools\VSSDK\bin\VSCT.exe' Assembly. [d:\example\myproj\MyProj.csproj]

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

附加说明:我在本地计算机和相关构建服务器上都运行 Visual Studio 2015(更新 3)。


更新(2019 年 1 月 7 日)

该问题似乎与执行的 MSBuild.exe 版本有关。

默认情况下,我们的构建服务器使用与 .NET 的最高安装版本相关联的 MSBuild 版本(在我们的例子中是 MSBuild 版本 4.7.3062.0)。此版本从我的原始帖子中抛出错误(VSSDK1001)。

如果我使用与 VS 2015 关联的 MSBuild 版本(MSBuild 版本 14.0.27522.0)手动执行构建,则会消除错误并且构建成功。到目前为止,我一直无法强制 TFS 使用所需的 MSBuild.exe 版本......

4

2 回答 2

0

错误 VSSDK1001:找不到 Microsoft.VisualStudio.CommandTable.VSCTCompiler 类型

在 TFS 定义中构建任务之前,您应该添加一个 nuget restore 任务。

当您通过 Visual Studio 在本地构建时,Visual Studio 有两个选项可以在我们构建项目时自动恢复 nuget 包:

在此处输入图像描述

但是,当您在 TFS 服务器上构建时,没有这样的选项可以自动恢复这些 nuget 包。所以我们需要在构建项目/解决方案之前添加一个任务 nuget restore:

添加任务,搜索nuget并将其添加到代理作业中,在命令中选择restore:

在此处输入图像描述

正确配置此 nuget restore 任务并将其设置在您的构建任务之前。

注意:您还可以将NuGet Tool Installer任务添加到特定版本的 NuGet。

希望这可以帮助。

于 2018-12-11T02:15:08.993 回答
0

解决这个问题需要更新我们的构建定义使用的构建过程模板中的ToolPath属性,类似于本文中描述的内容。

在我们的例子中,我们的构建过程模板包含“为配置文件夹运行 TfsBuild”步骤,我需要将ToolPath属性更新为"C:\Program Files (x86)\MSBuild\14.0\Bin"

于 2019-01-08T00:14:51.597 回答