2014-02-23 156 views
17

我創建了我的第一個MVC 4項目,它可以在本地服務器上正常工作。但是,當我將其發佈到本地文件夾並將文件夾內容上載到託管服務器時。我嘗試運行它,我得到這個錯誤:無法加載文件或程序集異常來自HRESULT:0x80131040

Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. The system cannot find the file specified. Can any one help me please?

Web.config文件:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" /> 
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" /> 
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

P.S在Web窗體同項目工程上的託管服務器。

+1

你檢查,看看是否在您的網站編制的.bin文件夾中存在該.dll? –

+0

請確保您有在DLL中選擇「複製本地」。這些可能是棘手的錯誤,因爲錯誤中的dll有時不是「其依賴關係之一」的問題。最後的手段是在服務器上安裝框架。 – KevDevMan

+0

您的主機是否支持MVC? –

回答

45

終於找到了答案! 轉到參考 - >右鍵依序按一下[上dll文件是造成問題的原因 - >選擇屬性 - >檢查版本 - >匹配屬性的web配置

<dependentAssembly> 
    <assemblyIdentity name="YourDllFile" publicKeyToken="2780ccd10d57b246"    culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-YourDllFileVersion" newVersion="YourDllFileVersion" /> 
    </dependentAssembly> 
+0

因爲這個,我花了一整天時間。謝謝 – MatanKri

+0

omg謝謝:)轟隆我的腦袋 – Liran

+2

這個解決方案直到我使用而不是 edank

0

添加以下DLL文件到bin文件夾:

DotNetOpenAuth.AspNet.dll 
DotNetOpenAuth.Core.dll 
DotNetOpenAuth.OAuth.Consumer.dll 
DotNetOpenAuth.OAuth.dll 
DotNetOpenAuth.OpenId.dll 
DotNetOpenAuth.OpenId.RelyingParty.dll 

如果您將不再需要它們,從配置刪除dependentAssemblies名爲「DotNetOpenAuth.Core」等。

+0

所有這些dll文件都存在於bin文件夾中。 – levkaster

+1

在配置中檢查dependsAssemblies –

0

版本試試這個:

在PublishProfiles文件夾
  • 編輯* .pubxml文件
  • 集DeleteExistingFiles true
  • 更新所有金塊包,重建,重新發布,瞧,問題解決了!

......爲我工作時,當我有同樣的問題。

2

如果您的解決方案包含兩個互相交互的項目並且都使用同一個參考,並且兩個項目的相應參考版本不同,然後也發生了這樣的錯誤。保持更新所有引用最新的。

3

什麼,我馬上工作是:

  • 我所在的bin文件夾(如下圖圖片)。

  • 爲了安全起見,將所有dll移動到其他文件夾中。

  • 然後重建項目。解決

  • 後的問題,刪除舊的dll文件。

Open file location

相關問題