在模块化应用程序中引用相同依赖项的多重版本

时间:2015-08-16 04:46:43

标签: c# asp.net asp.net-mvc

我设计了一个基于ASP.Net MVC的模块化系统。每个模块都是一个独立的ASP.Net Mvc应用程序,可以单独运行。但是,如果我将它们加载到我的核心应用程序中,控制器和视图......将合并到我的核心应用程序中。

加载模块机制基于将程序集加载到核心中的当前应用程序域,并在我的IoC容器中注册控制器和其他服务。此外,我将模块的引用依赖项逐个加载到当前应用程序域中,因此它运行完美。

但是,我的问题是,如果同一个第三方程序集的两个不同版本被两个不同的模块引用,则会导致错误,它表示不能解决程序集异常的一个或多个依赖关系app停止!

问题:处理上述问题的一般解决方案或方法是什么?

1 个答案:

答案 0 :(得分:2)

强命名是您问题的一般解决方案。当使用强名称时,2个不同版本的“相同”程序集被视为两个不同的程序集。

在你的模块中,

  1. 在解决方案资源管理器中,右键单击导致问题的引用,
  2. 选择属性,
  3. 确保他们的名字很强,
  4. 如果是,请选择$scope.$on('state-change', function(e, data) { $scope.$emit('current-form-state', { email: $scope.email }); }); 选项并将其设置为$scope.$on('state-change', function(e, data) { $scope.$emit('current-form-state', { email: 'john.doe@foo.com' }); });
  5. 这将确保给定模块仅使用给定版本的第三方依赖项。

    enter image description here