项目"XXXXXX"没有锁定文件.请运行"dotnet restore"以生成新的锁定文件

LP1*_*P13 5 asp.net-core-mvc coreclr asp.net-core asp.net-core-1.0 asp.net-core-webapi

我有ASP.NET Core Web API项目和.Net Core Library项目.Web API将库项目引用为target : project.库项目的名称是Transformations.
下面是两个项目的project.json

用于Web API的project.json

"dependencies": {
   "Microsoft.NETCore.App": {
    "version": "1.0.0",
    "type": "platform"
  },
   "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
   "Microsoft.AspNetCore.Mvc": "1.0.0",
   "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
   "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
   "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
   "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
   "Microsoft.Extensions.Configuration.Json": "1.0.0",
   "Microsoft.Extensions.Logging": "1.0.0",
   "Microsoft.Extensions.Logging.Console": "1.0.0",
   "Microsoft.Extensions.Logging.Debug": "1.0.0",
   "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
   "Transformations": {
            "target": "project"
    },
   "Microsoft.Extensions.DependencyInjection": "1.0.0",
   "Serilog.Extensions.Logging": "1.3.0-dev-10125",
   "Serilog.Sinks.RollingFile": "3.0.0",
   "Serilog.Settings.Configuration": "2.1.0",
   "Microsoft.AspNetCore.Diagnostics": "1.0.0"
},
Run Code Online (Sandbox Code Playgroud)

project.json for Library项目

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "configurations": {
    "Production": {},
    "Staging": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

在下面的构建服务器上是Api和Transformation项目的项目结构.

 D:\Jenkins\MyJenkinsProject\workspace\src\MySolution
                                                   \Api
                                                   \Transformation
Run Code Online (Sandbox Code Playgroud)

在构建服务器上,我执行了以下命令

  D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet restore
Run Code Online (Sandbox Code Playgroud)

然后

  D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet build
Run Code Online (Sandbox Code Playgroud)

我收到错误

项目转换没有锁定文件.请运行"dotnet restore"以生成新的锁定文件.

现在,如果我按顺序运行以下命令,那么一切正常.

  D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Transformation>dotnet restore
  D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet restore
  D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet build
Run Code Online (Sandbox Code Playgroud)

问题
1>当库项目在API项目中被引用时,为什么我需要dotnet restore单独为库项目运行?为什么它无法restores隐含地推荐项目?

all*_*tej -2

我相信你可以dotnet build直接做一个。它应该自动执行dotnet restore.