【问题标题】:Could not load file or assembly 'Castle.DynamicProxy2, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc'无法加载文件或程序集“Castle.DynamicProxy2,版本=2.1.0.0,文化=中性,PublicKeyToken=407dd0808d44fbdc”
【发布时间】:2010-10-21 19:14:00
【问题描述】:

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

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

【问题讨论】:

标签: .net nhibernate fluent-nhibernate castle


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2017-10-10
      • 2015-08-17
      • 2015-04-01
      • 2015-06-02
      • 2018-02-05
      • 2021-01-22
      相关资源
      最近更新 更多