asp.net-core – 项目’XXXXXX’没有锁文件.请运行“dotnet restore”以生成新的锁定文件

我有ASP.NET Core Web API项目和.Net Core Library项目. Web API将Library项目引用为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"
},

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": {}
  }
}

在下面的构建服务器上是Api& amp;的项目结构.转型项目.

D:\Jenkins\MyJenkinsproject\workspace\src\MySolution
                                                   \Api
                                                   \Transformation

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

D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet restore

然后

D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet build

我收到错误

Project Transformations does not have a lock file. Please run
“dotnet restore” to generate a new lock file.

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

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

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

解决方法

From Zlatko Knezevic

This behavior is by design. […] If you wish to restore all of the dependencies for all your projects in one go,so to speak,just run dotnet restore at the root of your solution (where you have the global.json file).

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....