构建dotnet核心:请运行" dotnet restore"生成一个新的锁文件

时间:2017-02-28 21:42:00

标签: msbuild asp.net-core .net-core project.json

我的解决方案中有多个项目。我正在尝试为我的构建服务器创建构建定义。我的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"
  }
}

我正在尝试恢复然后构建这个项目,但它抱怨其他与之无关的项目。

恢复

enter image description here

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 个答案:

答案 0 :(得分:2)

您的项目取决于Microsoft.EntityFrameworkCore.SqlServerMicrosoft.Extensions.Caching.Abstractions依赖于project.lock.json(不是直接,而是在树后面)。由于您的解决方案中有该项目 - 可能是因为您在global.json中有引用 - 它将尝试使用该项目而不是NuGet包。

但是,对于项目工作引用,它需要@ElementCollection @CollectionTable( name = "task_properties", joinColumns = { @JoinColumn( name = "task_id" ) }, foreignKey = @ForeignKey( foreignKeyDefinition = "FOREIGN KEY (task_id) REFERENCES Task" ) ) private Set<String> properties; ,因此它抱怨恢复项目的包。

从您的解决方案中删除项目(我想知道为什么它首先存在)或确保其包已经恢复。