如何在ASP NET 5解决方案中引用同一DLL的两个版本

时间:2015-05-26 07:52:17

标签: linq nhibernate asp.net-core visual-studio-2015 asp.net-core-mvc

使用Visual Studio 2015,我已经构建了一个解决方案:

  • 使用MVC 6的ASP NET Web应用程序:该项目使用Remotion.linq.dll版本2,因为实体Framemork 7依赖用于身份验证。

  • 两个Windows类库:'服务'和'数据'。这两个是由Web应用程序引用的。 Project Data使用NHibernate访问数据层,该数据层依赖于Remotion.linq.dll版本1.

我的问题是,当我启动我的应用时,只引用了两个版本中的一个,导致应用程序崩溃。

我的问题是:

  • 我们可以设法在我的解决方案中引用DLL的两个不同版本吗?
  • 如果没有,我们可以让NHibernate与Remotion.linq.dll版本2一起使用吗?

2 个答案:

答案 0 :(得分:1)

不,并不支持。不要这样做。

答案 1 :(得分:0)

您必须尝试绑定重定向,以查看是否只能保留一个程序集。关于绑定重定向,您可以在此处阅读:https://msdn.microsoft.com/en-us/library/2fc472t2(VS.80).aspx或在堆栈中搜索此特定关键字。

这取决于组件中是否存在相同的功能,或者是否存在不同的功能。没有一般的答案。

如果您确实需要使用两个装配,请回答http://blogs.msdn.com/b/abhinaba/archive/2005/11/30/498278.aspx

和PS:让NHibernate与Remotion.linq.dll v2一起工作对我来说是一个很大的尝试(修改依赖关系和类似的事情)。

更新:CodeBase参考https://msdn.microsoft.com/en-us/library/efs781xb.aspx

还有另一种绑定程序集版本的可能性。在GAC中复制并通过强名称引用它们(它们必须有一个),但我没有尝试过。