2011-09-19 57 views
2

我試圖讓SharpSVN與我在VS2010中工作的VB.NET項目一起工作。我已經添加SharpSVN.dll到我的項目的引用,但是當我嘗試加載該網站出現以下錯誤:在當前web請求的執行過程中發生未處理的異常:VS2010中的SharpSVN錯誤

Could not load file or assembly 'SharpSvn' or one of its dependencies. An attempt was made to load a program with an incorrect format.

描述。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息: System.BadImageFormatException:無法加載文件或程序集'SharpSvn'或其某個依賴項。試圖加載格式不正確的程序。

源錯誤:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

我的機器是64位的,我已經設置了配置管理器建立到x64以及複製SharpSVN.dll的64位版本到我項目的bin目錄。此外,我也嘗試將構建版本設置爲x86,並使用x86版本的SharpSVN.dll,並且出現相同的錯誤(所以我懷疑錯誤可能與指令集系列不直接相關)。

在我的配置文件,我已經嘗試添加以下的組件屬性:

<add assembly="SharpSvn, Version=1.6016.1637.10768, Culture=neutral, PublicKeyToken=d729672594885a28"/> 

任何想法?

+0

我有類似的問題,有點。我遇到了這個錯誤,但是我的項目甚至不再使用SharpSVN(過去曾經使用過,但我們將其刪除了)。一直工作好幾個月,一夜之間突然失敗,沒有任何改變。非常令人沮喪,因爲在項目或系統中的任何地方似乎沒有任何對SharpSVN的引用。 –

回答

1

儘管認爲<add assembly>已經足夠,但我實際上是通過向GAC中添加SharpSvn來解決這個問題的(如果有人也遇到了這個問題)。

+0

我有同樣的問題,我已經通過使用x86版本解決它。 項目設置和GAC都沒有幫助。奇怪的是在這裏... – user2173353

1

我有同樣的錯誤,無法解釋發生了什麼。然而,與32位版本,錯誤的是更具描述:

Unhandled Exception: System.IO.FileLoadException: Mixed mode assembly is built against 
    version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without 
    additional configuration information. 

,您可以通過將下面的代碼片段到你的app.config

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

不知道什麼是錯的64位版本修復,但你總是可以build it from source

+0

我已經嘗試添加該片段,並且VS告訴我無法找到屬性的架構信息。我不確定它是否真的阻止了編譯,所以我會試一試。謝謝! – Kevin

+0

你在使用.NET 4.0項目嗎? – jeroenh

+0

是的,我是。 <4更多去>> – Kevin

1

我不確定爲什麼添加到GAC爲您工作,這不是組裝加載程序的正確行爲。

該錯誤指的是程序集的位數。 SharpSVN是一個混合模式程序集,即:它包含託管代碼和非託管代碼。您必須專門針對x86(使用x86 SharpSVN Assembly)或x64(再次使用適當的程序集)。您必須進一步將所有程序集設置爲明確的x86或x64。定位任何CPU都將允許運行時爲你做出這個決定,如果它選擇的字長不匹配SharpSvn DLL,它將無法加載SharpSvn.dll。