2017-02-28 53 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,因此它抱怨恢復項目的包。

要麼從您的解決方案中刪除項目(我想知道爲什麼它在那裏)或確保它的包已被恢復。