我目前使用的是假設支持引用從核心MVC Web應用程序項目一個完整的框架庫項目ASP.NET MVC核心RC2。但我似乎無法讓它工作。從ASP.NET核心MVC Web應用程序(RC2)引用完整框架庫項目?
我已有一個完整的框架庫項目,我想用一個新的核心MVC的Web應用程序項目中使用。但是當我嘗試添加對庫項目的引用時,我得到一個錯誤,指出它的目標框架與Web應用程序的目標框架不兼容。
要儘量簡化我創建了一個新的核心MVC Web應用程序和新的Windows代碼庫,並嘗試添加從Web應用程序項目庫的項目引用,並得到了相同的錯誤消息的問題。我搜索了堆棧溢出,我發現這個問題看起來非常相關:How to make ASP.NET Core RC2 app build on net46 framework with older third party dependencies但我無法使用那裏的信息來解決我的問題。
下面是重現該問題的步驟:
我創建了一個帶有「.NET的核心」,‘核心ASP.NET Web應用程序的解決方案’項目的基礎上,‘在Visual Studio 2015年的Web應用程序’模板。
我再添加了一個新的 「Windows」, 「類庫」 項目的解決方案。
所以在這一點的解決方案是這樣的:
現在,當我嘗試使用Visual Studio從核心MVC Web應用程序添加到完整的框架參考庫我得到一個錯誤,指出「ExampleLib具有與當前項目ExampleWebApplicaiton中的目標不兼容的目標框架」。:
這個錯誤似乎相當自我解釋,好像要我改變Web應用程序的目標是使這是一樣的圖書館,這是非常合情合理的框架。問題是,我找不到如何做到這一點的文檔,而智能感知不是特別有用。
我懷疑我需要改變以下的project.json
文件的分片的Web應用程序之一:
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
或
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
},
如何指定.NETFramework 4.6版的核心MVC Web應用程序而不是.NETCoreApp?
我一直在充實與別人微軟在這個線程https://github.com/aspnet/Tooling/issues/45名爲abpiskunov的做法,但我喜歡你的方法更好,如果我能得到它工作。當我在New Project對話框的下拉列表中選擇「.NET Framework 4.5.1」並選擇ASP.NET Core Web App時,project.json似乎忽略它幷包含「frameworks」:{「netcoreapp1.0」 「:{ 「進口」:[ 「dotnet5.6」, 「dnxcore50」, 「便攜式-net45 + win8的」 ] } }, –
但是,如果我手動編輯project.json構架部分以包括「net461」,然後從文件頂部的依賴關係部分中刪除'「Microsoft.NETCore.App」,然後手動恢復包,然後使用Visual Studio添加我的項目引用,然後手動恢復包,我可以獲取它工作。理論上,最後一次手動還原軟件包不是必需的,但在我的設置中,出於某種原因尚不清楚。 –
另外還有一點需要注意的是,對於我來說,使用這種方法來引用Windows類庫項目只有在項目是使用RC2工具與我的Visual Studio 2015 Update 2一起創建的時候才起作用,但它在多年前創建的Windows類庫項目中不起作用。解決方法?創建一個新的Windows類庫項目,將現有的代碼文件添加到它,現在VS將允許使用上面的答案和我的意見中的步驟引用它。乾杯! –