【问题标题】:Dotnet restore MyProj.csproj thows "The file type is not recognised" on VSTSDotnet restore MyProj.csproj 在 VSTS 上出现“无法识别文件类型”
【发布时间】:2017-10-22 09:31:28
【问题描述】:

我正在为 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

我在src 文件夹之外有一个global.json 文件:

{
  "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文件格式。

我还应该检查什么?

【问题讨论】:

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


    【解决方案1】:

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

    共享运行时主机(dotnet.exe)的版本是一样的,不同的是还需要安装更新的CLI(在dotnet.exe所在目录的sdk子目录下) .

    【讨论】:

    • 我想这个东西已经安装在构建代理上......但是让我试试吧
    • 是的,我应该意识到安装的 SDK 与我正在编译的不同。一旦我安装了 SDK,我就得到了结果。谢谢!
    • 我认为这是正确的,但作为 VSTS 的新手,我不知道该怎么做。这个答案有帮助:stackoverflow.com/a/42969311/345179
    猜你喜欢
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多