2010-10-21 85 views
0

我正在使用Microsoft Visual Studio 2010.我開始使用FluentNHibernate 1.1。配置.BuildSessionFactory()執行後,我有例外。無法加載文件或程序集'Castle.DynamicProxy2,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'

Message "Could not load file or assembly 'Castle.DynamicProxy2, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies.

Castle.DynamicProxy2目前在項目引用,版本是正確的。此外這個組件目前在建設路徑。我無法解決這個問題...

p.s.我嘗試獲取FluentNHibernate的最新版本,在我的項目中使用程序集構建和運行。我有同樣的錯誤。

+0

你從哪裏下載NHibernate?確保您使用FNH附帶的版本。 – mxmissile 2010-10-21 19:16:47

+0

我第一次從http://fluentnhibernate.org/下載FluentNHibernate,之後從http://github.com/jagregory/fluent-nhibernate – webus 2010-10-21 19:23:04

+0

這個錯誤僅在調試模式下才會出現。當應用程序在演播室外運行時,不會出現錯誤 – webus 2010-10-21 19:48:57

回答

0

這可能是因爲你的目標是framework 4.0而Castle Assembly是2.0編譯的。

你可以嘗試添加到您的app.config,在<configuration />元素中,允許混合版本在運行時:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 
0

你說的參考Castle.DynamicProxy2在你的項目中存在,並且是正確的版。你確認了它的文件路徑,它是否正確?

MSVS有一個關於參考路徑的小問題。一旦你引用了一個程序集,並且你的項目被編譯了,這個程序集的一個副本就會被放到你的輸出目錄中。通常,其參考路徑會自動更改爲指向此輸出目錄。然後,如果您清理了某些東西,則文件不再存在於預期的位置,並且會導致出現此類錯誤消息。

要解決此問題,您需要刪除引用有問題的程序集,然後再次將其作爲對項目的引用添加。

另一種簡單的方法是從項目屬性中爲每個項目設置參考路徑。不幸的是,您將被要求爲每個項目設置它們,因爲項目計數您的解決方案的次數很多。另外,你們團隊的每一位程序員都會這樣做,因爲這些設置保存在本地計算機上,並且不會像參數那樣在項目設置中部署。

相關問題