因此,我清理了ASP.NET MVC項目中的一些DLL引用,我刪除了bin中的DLL並更新了源代碼控制以從源代碼控制中刪除DLL。我現在複製所有關於構建bin的引用,正確的方法。但是,當我運行本地主機我得到的錯誤:奇怪的Microsoft.Owin DLL問題和Nuget
Could not load type 'Microsoft.Owin.Security.AuthenticationDescription' from assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
於是我開始在服務器(其中網站工作),在比較的DLL,我的本地bin目錄。如果我從服務器複製並替換Microsoft.Own並覆蓋我的本地版本,則網站再次運行,錯誤消失。
的東西是DLL文件的版本是完全一樣的,看下面的屏幕截圖:
左邊是我的本地副本,右邊是從版本服務器。
如果我看看我的ASP.NET MVC網站的參考資料,我看到Microsoft.Own位於: .. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net40 ** \ Microsoft .Owin.dll
,並複製本地設置爲True,見截圖:
所以下次我刪除了Microsoft.Owin.2.1.0參考,並嘗試使用微軟的net45版本重新進行添加.Owin.dll代替。所以我瀏覽了.. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net45 ** \ Microsoft.Owin.dll
但是當我去檢查Microsoft.Owin的屬性時,在參考下,路徑仍然 .. \包\ Microsoft.Owin.2.1.0 \ lib中** ** net40 \ Microsoft.Owin.dll
所以我後來去我的csproj文件,看到以下條目:
<Reference Include="Microsoft.Owin.Security, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.Owin.Security.2.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
而且在我的web.config我targetFramework是4.5:
<compilation debug="true" targetFramework="4.5">
因此,最後,我複製並粘貼在服務器上的Microsoft.Owin.dll,它的作品爲 .. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net40 ** \ Microsoft.Owin.dll和。 \包\ Microsoft.Owin.2.1.0 \ lib中** ** net45 \ Microsoft.Owin.dll
要覆蓋包DLL當我重建被複制和我仍然得到錯誤:
Could not load type 'Microsoft.Owin.Security.AuthenticationDescription' from assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
再次,如果我複製與本地副本相同版本的Microsoft.Owin.dll,並覆蓋我的本地副本的bin.Microsoft.Owin.dll,我的ASP.NET MVC再次開始工作,直到我建立這當然也是。
嘗試爲每個Katana/OWIN相關包(http://docs.nuget.org/docs/workflows/reinstalling-packages)運行'Update-Package -reinstall'。如果你使用的是NuGet包,你不需要直接添加引用到任何DLL。 –
Eilon
2014-10-02 05:52:41
這並沒有工作,雖然 – 2014-10-02 06:07:35