2016-07-28 102 views
10

我有一個.NET 1.0的核心類庫其面向.NET 4.6.1和引用的.NET標準庫1.6.0和身份框架2.2.1從.NET 1.0的核心類庫引用mscorlib程序4.0.0.0

project.json

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "Microsoft.AspNet.Identity.EntityFramework": "2.2.1", 
     "System.Runtime": "4.1.0", 
     "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
     "netstandard1.6": { 
      "imports": [ 
       "net461" 
      ] 
     } 
    } 
} 

在我的項目,我只是創造了身份識別模型,它擴展基本身份框架模型(用戶,角色等)。當我嘗試編譯,這種情況發生......

enter image description here

enter image description here

任何想法如何解決這個問題?

+0

您是否添加了對mscorlib v4.0.0.0的引用? – Tim

+0

@Tim,我假設沒有,因爲我不知道如何在.NET核心類庫中做到這一點 – series0ne

+0

可能與添加其他依賴關係的方式相同?在project.json文件中?我不是100%確定的,因爲我還沒有玩過.NET Core 1.0。 – Tim

回答

7

有兩個問題在這裏你的項目文件,一個簡單的修復,一個無法修復;)

  • 您的項目目標net461netstandard1.6。你的project.json所說的是:構建netstandard1.6的目標,並說謊到NuGet並聲稱你是net461(說謊是什麼import確實......不相信我,看它;))。由於你的project.json對NuGet撒謊,你可以在其中添加Microsoft.AspNet.Identity.EntityFramework。並行添加net461netstandard1.6不會幫助您,因爲您無法添加依賴項。
  • NuGet依賴項Microsoft.AspNet.Identity.EntityFramework在2015年發佈,基於.NET Framework(基於mscorlib)而不基於.NET Standard/.NET Core(基於System.Runtime)。說謊對於依賴關係基於mscorlib而不是System.Runtime的事實沒有幫助。

你可以嘗試什麼,瞄準(正確地)並行net461netstandard1.6並嘗試做一個並行實現與Microsoft.AspNet.Identity.EntityFrameworkMicrosoft.AspNetCore.Identity.EntityFrameworkCore分別使用的#ifdefs。但是,結果將會有多大用處,我不知道將使用何種結果庫;)

+1

壯觀的答案。謝謝! – series0ne

+1

謝謝!我一直在尋找這個小時的澄清! –

9

Microsoft有一個nuget軟件包,可以提供幫助。我不知道它是如何工作的具體細節,但它解決了我的依賴問題:

https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/

或者乾脆包管理器控制檯運行此:

Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1 

編輯: 將其加入到.net核心1.1項目。

+0

令人驚訝的是,這確實奏效,謝謝! –

+0

謝謝你男人。像魅力一樣工作 – Butsaty

相關問題