2018/11/30

[Visual Studio] 解決專案找不到參考的元件 System.Web.Mvc, System.Web.Http 的問題

發生的原由


專案是從 Git 儲存庫複製下來的,依照原開發者的專案設置,在載下來之後,重新建置方案會把相關的 packages 從 NuGet 下載回來,通常建置過也不會有什麼大問題,但是就遇到了找不到參考元件的錯誤

遇到的問題


專案是以三層式架構來撰寫

其中在 MVC 的網站專案出現:找不到參考的元件 System.Web.Http

而某一個 Library 專案出現:找不到參考的元件 System.Web.Mvc


錯誤顯示如下:



在專案會看到參考出現驚嘆號



看起來版本好像也不在我的開發本機裡



解決方法


先關閉 Visual Studio, 用文字編輯器開啟並修改專案 xxx.csproj 檔案

比對了一下 Web 專案及 Library 專案,先解掉 System.Web.Mvc 參考找不到的問題,把它的 HintPath 指向 packages 的位置即可



原始:
<Reference Include="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />


修改後:
<Reference Include="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    <Private>True</Private>
    <HintPath>..\..\packages\Microsoft.AspNet.Mvc.5.2.4\lib\net45\System.Web.Mvc.dll</HintPath>
</Reference>

另外在 Web 專案找不到 System.Web.Http 的問題,有可能是在專案開發過程中,把前後端合併成一個單一網站系統時,少了某些動作而沒有正確的參考,編譯只會出現 Warning,還不影響,但是有警示就會想把它給解決了

最簡單的方法,是去 NuGet 下載 System.Web.Http 即可,不過我去找其他 Web 專案發現它是屬於 WebApi 會用到的元件,那麼直接安裝 Microsoft.AspNet.WebApi.Core 即可修正此問題

 



結論


以後看到找不到參考,一種是把需要的 *.dll 檔案直接複製到專案中的 bin 資料夾裡
但是多人開發時,最好還是指向正確的參考路徑

再來是檢查版本,因為目前使用 Visual Studio 2017 開發,沒有以前早期的 VS 版本,預設參考路徑或版本就會有所不同

特此記錄一下,供以後翻閱!

沒有留言: