文章出處

發現問題

在將 FineUIMvc(支持ASP.NET MVC 5.2.3)升級到 ASP.NET Core 2.0 的過程中,我們發現一個奇怪的現象:

通過項目引用 FineUICore 工程一切正常,但是將 FineUICore 編譯后,通過程序集的引用方式就會報錯:

這就很奇怪了,在折騰了好一陣之后,開始求助于網絡。這一找不要緊,大把大把的抱怨撲面而來:

這篇文章提到:

翻譯:您需要將庫打包為 NuGet 包或使用項目的方式引用。技術原因是所有必需的程序集和版本都在編譯過程中得到解析, 并寫入 .deps.json 文件。加載某個特定程序集時, 可能會失敗, 因為無法找到程序集或其依賴項 (或彼此沖突)。

 

這篇文章甚至懷疑微軟是否考慮支持程序集的引用方式:

問:微軟是否讓ASP.NET Core應用只支持 NuGet包引用,還是說這只是新技術的一個BUG?

答:Nuget包當然是添加引用的最好方式,因為他們可以很好與編譯發布流程進行整合。

正如我所說的那樣,前面提到的問題的確是BUG,并且我們計劃在將來的補丁版本中對此進行修正。

 

博客園的問答中也找到類似的提問:

 

解決方案

本著求真的態度,我找到了 .Net Core 的下載地址,居然發現昨天剛剛發布了新版本:Core 2.0.3

 

下載 .Net Core 2.0.3 的 64bit SDK Installer 并安裝:

 

再回到之前出錯的項目,編輯 csproj 文件:

將其 Microsoft.AspNetCore.All 的引用版本由 2.0.0 改為 2.0.3:

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" />
</ItemGroup>  

保存,此時VS會自動還原 NuGet包:

運行,大功告成:

 

附錄:我翻譯的 ASP.NET Core 2.0 系列文章

基礎篇

[譯]ASP.NET Core 2.0 中間件

[譯]ASP.NET Core 2.0 帶初始參數的中間件

[譯]ASP.NET Core 2.0 依賴注入

[譯]ASP.NET Core 2.0 全局配置項

[譯]ASP.NET Core 2.0 機密配置項

[譯]ASP.NET Core 2.0 會話狀態

[譯]ASP.NET Core 2.0 本地文件操作

[譯]ASP.NET Core 2.0 網址重定向

MVC篇

[譯]ASP.NET Core 2.0 路由引擎

[譯]ASP.NET Core 2.0 路由引擎之網址生成

[譯]ASP.NET Core 2.0 視圖引擎

[譯]ASP.NET Core 2.0 區域

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()