0

我正在使用 Microsoft Visual Studio 2010。我开始使用 FluentNHibernate 1.1。configuration.BuildSessionFactory() 执行后,我有异常。

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 存在于项目引用中,版本正确。此程序集也存在于构建路径中。我无法解决这个问题...

ps 我尝试获取 FluentNHibernate 的最新版本,在我的项目中使用程序集构建和运行。我有同样的错误。

4

2 回答 2

0

这可能是因为您的目标是框架 4.0,而 Castle 程序集是为 2.0 编译的。

您可以尝试将其添加到<configuration />元素内的 app.config 中,以允许在运行时混合版本:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
于 2010-10-22T14:59:22.173 回答
0

您说引用Castle.DynamicProxy2存在于您的项目中,并且是正确的版本。您是否验证了它的文件路径,它是否正确?

MSVS 有一个关于参考路径的小问题。一旦你引用了一个程序集,并且你的项目被编译,这个程序集的副本就会被复制到你的输出目录中。通常,它的引用路径会自动更改为指向此输出目录。然后,如果您进行清理或其他操作,您的文件将不再存在于预期的位置,并导致此类错误消息。

要解决此问题,您需要删除有问题的程序集的引用,并再次将其添加为对项目的引用。

另一种简单的方法是从项目属性中设置每个项目的参考路径。不幸的是,您将需要为每个项目设置它们,因此您的解决方案的项目数量与项目数量一样多。此外,您团队中的每个程序员也会这样做,因为这些设置保存在本地机器上,而不是像参数一样部署在项目设置中。

于 2010-10-22T15:10:09.323 回答