我正在尝试更新Visual Studio扩展以兼容Visual Studio 2017中的安装。我已按照以下每个页面(以及我搜索过的其他页面)中的步骤和说明进行操作:
我最初遇到this post中提到的另一个问题,该问题已解决。现在,项目(和扩展名)继续在本地成功构建,但是在我们的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)。
更新(1/7/2019)
问题似乎与执行的MSBuild.exe版本有关。
默认情况下,我们的构建服务器使用与最高安装的.NET相关的MSBuild版本(在本例中为MSBuild版本4.7.3062.0)。 此版本引发我原始帖子中的错误(VSSDK1001)。
如果我使用与VS 2015关联的MSBuild版本(MSBuild版本14.0.27522.0)手动执行构建,则会消除该错误,并且构建成功。到目前为止,我一直无法强制TFS使用所需的MSBuild.exe版本...
答案 0 :(得分:0)
错误VSSDK1001:无法找到Microsoft.VisualStudio.CommandTable.VSCTCompiler类型
在TFS定义中构建任务之前,应添加nuget恢复任务。
当您通过Visual Studio在本地构建时,Visual Studio有两个选项可以在我们构建项目时自动还原nuget包:
但是,当您在TFS服务器上构建时,没有这样的选项可以自动还原那些nuget软件包。因此,在构建项目/解决方案之前,我们需要添加一个任务nuget restore:
添加任务,搜索nuget并将其添加到代理作业中,在“命令”中选择“还原”:
正确配置此nuget恢复任务,并在构建任务之前进行设置。
注意:您还可以向特定版本的NuGet添加NuGet Tool Installer
任务。
希望这会有所帮助。
答案 1 :(得分:0)
要解决此问题,需要更新构建定义所使用的构建过程模板中的 ToolPath 属性,类似于this post中所述。
在我们的示例中,我们的构建过程模板包含“为配置文件夹运行TfsBuild”步骤,我需要将 ToolPath 属性更新为值"C:\Program Files (x86)\MSBuild\14.0\Bin"