Сборка ядра dotnet: Пожалуйста, запустите "dotnet restore", чтобы создать новый файл блокировки

У меня есть несколько проектов в моем решении. Я пытаюсь создать определения сборки для моего сервера сборки. У меня есть Core Project, у которого нет никаких зависимостей со следующим project.json:

 {
  "version": "1.0.0-*",

  "frameworks": {
    "netcoreapp1.0": {}
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1"
  }
}

Я пытаюсь восстановить затем построить этот проект, но он жалуется на другой проект, который не связан с ним.

Восстановить

введите описание изображения здесь

PS C:\Program Files (x86)\TeamCity\buildAgent\work\3c13246440f9a264\src\Compas.Core> dotnet restore
log  : Restoring packages for C:\Program Files (x86)\TeamCity\buildAgent\work\3c13246440f9a264\src\Compas.Core\project.json...
log  : Writing lock file to disk. Path: C:\Program Files (x86)\TeamCity\buildAgent\work\3c13246440f9a264\src\Compas.Core\project.lock.json
log  : C:\Program Files (x86)\TeamCity\buildAgent\work\3c13246440f9a264\src\Compas.Core\project.json
log  : Restore completed in 2071ms.

строить

PS C:\Program Files (x86)\TeamCity\buildAgent\work\e5c291e45d6e2691\src\Compas.Core> dotnet build
Project Microsoft.Extensions.Caching.Abstractions does not have a lock file. Please run "dotnet restore" to generate a new lock file.
Project Microsoft.Extensions.Caching.Abstractions does not have a lock file. Please run "dotnet restore" to generate a new lock file.

У меня есть "Microsoft.Extensions.Caching.Abstractions" в моем решении, но почему для сборки Core нужен этот файл блокировки.

1 ответ

Решение

Ваш проект зависит от Microsoft.EntityFrameworkCore.SqlServer что в свою очередь зависит от Microsoft.Extensions.Caching.Abstractions (не напрямую, но позже в дереве). Поскольку у вас есть этот проект в вашем решении - возможно, потому что у вас есть ссылка в вашем global.json - он попытается использовать этот проект, а не пакет NuGet.

Однако для того, чтобы проект работал, ему нужен project.lock.json и поэтому он жалуется на восстановление пакетов проекта.

Либо удалите проект из вашего решения (интересно, почему он там находится), либо убедитесь, что его пакеты были восстановлены.

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