我正在为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文件格式。
我还应该检查什么?
答案 0 :(得分:10)
由于该项目使用VS 2017并且"已发布"在.NET CLI工具中,您还需要使用Hosted VS2017
代理队列进行构建,以便在安装了必要工具的代理上运行构建。
共享运行时主机(dotnet.exe
)的版本是相同的,区别在于还需要安装较新的CLI(位于sdk
目录的dotnet.exe
子目录中{ {1}}是)。