Проект 'XXXXXX' не имеет файла блокировки. Пожалуйста, запустите "dotnet restore", чтобы создать новый файл блокировки

Я имею ASP.NET Core Web API проект и .Net Core Library проект. Веб-API имеет ссылку на проект библиотеки как target : project, Название библиотечного проекта Transformations,
Ниже приведен project.json для обоих проектов

project.json для веб-API

"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 & Transformation.

 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 не имеет файла блокировки. Пожалуйста, запустите "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

Вопросы
1> Когда библиотека упоминается как проект в проекте API, почему мне нужно запустить dotnet restore отдельно для библиотечного проекта? Почему не могу restores ссылаться на проект неявно?

2 ответа

От Златко Кнежевича:

Такое поведение является особенностью. […] Если вы хотите восстановить все зависимости для всех ваших проектов за один раз, так сказать, просто запустите dotnet restore в корне вашего решения (где у вас есть global.json файл).

Я верю, что ты можешь просто сделать dotnet build непосредственно. это должно автоматически сделать dotnet restore,

Другие вопросы по тегам