2016-11-10 47 views
0

我有一個.NET核心項目,由project.json貌似依存度System.IO> = 4.1.0,但結束了System.IO 4.3.0-preview1-24530-04

{ 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore": "1.0.1", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.1" 
    }, 
    "System.Data.SqlClient": "4.1.0", 
    "System.IO": "4.1.0", 
    "System.Net.Http": "4.1.0", 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": "dnxcore50" 
    } 

    }, 
    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 
    "version": "1.0.0-*" 
} 

當我建立我得到以下警告

warning NU1007: Dependency specified was System.IO >= 4.1.0 but ended up with System.IO 4.3.0-preview1-24530-04. 

我不想升級System.IO到預覽生成的這個代碼是準備出貨,所有的測試已經進行與當前project.json。我可以強制版本4.1.0嗎?

+1

在'project.json'中似乎沒有辦法強制* exact *版本。你可以試着要求'4.1。*',它應該至少將事物限制在4.1分支(這仍然不是確切的,但不應該去4.3的預覽版本)。 –

+0

你能否讓它忽略預覽?謝謝 –

+0

我是否擔心這太多?強制4.1。*創建其他警告,因爲其他引用預計預覽版本,而不是預覽期望預覽的情況。 EF的1.0.1版預計會有許多4.3版本的System。* dll。 –

回答

0

在項目或解決方案級別執行以下命令:

dotnet restore --no-cache 

如果這不會幫助,然後刪除相應的程序包文件夾:

%USERPROFILE%\.nuget\packages\System.IO 

並再次嘗試dotnet restore

+0

有用的信息,這個問題已經回答@ChrisHawkes評論之一。將版本指定爲4.1。*將強制它保留在4.1。*分支上,這足夠好。 –

+0

@SteveDrake,它解決了你的問題,只是因爲它有一些副作用,其中一個重新啓動了程序包恢復過程,並且你收到了所需的版本。無論如何,我不需要特定的版本,那麼你可以使用「4.1。*」。如果您需要特定版本,則應將其聲明爲「4.1.0」。修改'project.json'後使用'dotnet restore'。 – Deilan