asp.net-core - 项目 'XXXXXX' 没有锁定文件。请运行 "dotnet restore"生成新的锁定文件

标签 asp.net-core asp.net-core-mvc asp.net-core-1.0 coreclr asp.net-core-webapi

我有 ASP.NET Core Web API 项目和 .Net Core Library 项目。 Web API 将库项目引用为目标:项目。库项目的名称是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

{
  "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 和转换项目的项目结构。

 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).

关于asp.net-core - 项目 'XXXXXX' 没有锁定文件。请运行 "dotnet restore"生成新的锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599379/

相关文章:

c# - 依赖注入(inject) .NET Core - InvalidOperationException

c# - 我应该有多个存储库吗?

asp.net - 为 ASP.Net Core Weblistener 安装 SSL 证书

sass - 如何从 scss 文件生成 css 文件 dotnet core

virtual-directory - 无法使用虚拟目录访问 ASP.net Core 应用程序外部的文件

c# - ASP.NET Core Identity 不注入(inject) UserManager<ApplicationUser>

c# - 使用 .NET Core 的 Linux/Unix 上的文件权限

angularjs - 相关和嵌套资源的 REST Api 端点设计

asp.net - 我是 .NET Core 2.1 MVC 的新手,无法理解一些事情的工作原理

asp.net - UserManager - 访问已处置对象