Dotnet恢复MyProj.csproj在VSTS上显示“无法识别文件类型”

时间:2017-05-22 16:19:27

标签: .net build .net-core azure-pipelines

我正在为dotnet Core项目制作构建管道。我的构建脚本的一部分执行dotnet restore。我是这样做的:

dotnet restore C:/Projects/MyProj/src/MyProj/MyProj.csproj

它在本地恢复没有问题。当我将相同的脚本推送到VSTS构建服务器时,在日志中我看到执行如下:

dotnet restore D:/a/1/s/src/MyProj/MyProj.csproj

然后我收到错误:

  

错误:输入'D:/a/1/s/src/MyProj/MyProj.csproj'无效。文件类型无法识别。

我做错了什么?为什么它在本地工作而不是在VSTS上工作。

我在本地使用与VSTS相同版本的dotnet.exe:

  

版本:1.1.0
  建立:928f77c4bc3f49d892459992fb6e1d5542cb5e86

我的global.json文件夹位于src文件夹之外:

{
  "projects": ["src"],
  "sdk": {
    "version": "1.1.0"
  },
  "packages": "packages"
}

文件夹结构如下:

   Root/
       build.cake
       build.ps1
       global.json
       src/
          MyProj.sln
          MyProj/
            MyProj.csproj
            *.cs
          MyProj.Tests/
            MyProj.Tests.csproj
            *.cs

在VS2017中创建了解决方案,因此这是最新的csproj文件格式。

我还应该检查什么?

1 个答案:

答案 0 :(得分:10)

由于该项目使用VS 2017并且"已发布"在.NET CLI工具中,您还需要使用Hosted VS2017代理队列进行构建,以便在安装了必要工具的代理上运行构建。

共享运行时主机(dotnet.exe)的版本是相同的,区别在于还需要安装较新的CLI(位于sdk目录的dotnet.exe子目录中{ {1}}是)。