2017-02-28 98 views
0

我的解决方案中有多个项目。我正在尝试为我的构建服务器创建构建定义。我有有以下project.json没有依赖核心项目:构建dotnet核心:请运行“dotnet restore”生成新的锁定文件

{ 
    "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”,但为什么打造核心需要那里锁定文件。

+0

尝试删除文件C:\ Program Files(x86)\ TeamCity \ buildAgent \ work \ e5c291e45d6e2691 \ src \ Compas.Core \ project.lock.json如果存在并重新运行还原。 –

+0

我已经这样做 – Coding

+0

好的。您可以尝试的另一个技巧是:在project.json中添加一些随机的依赖项,稍后您可以删除它,这将强制写入锁定文件。 –

回答

2

您的项目取决于Microsoft.EntityFrameworkCore.SqlServer,而这取决于Microsoft.Extensions.Caching.Abstractions(不直接,但稍后在树中)。由于您的解决方案中包含该项目 - 可能是因为您在global.json中有一个引用 - 它将尝试使用该项目而不是NuGet包。

但是,对于项目参考的工作,它需要project.lock.json,因此它抱怨恢复项目的包。

要么从您的解决方案中删除项目(我想知道为什么它在那里)或确保它的包已被恢复。