我设计了一个基于ASP.Net MVC
的模块化系统。每个模块都是一个独立的ASP.Net Mvc
应用程序,可以单独运行。但是,如果我将它们加载到我的核心应用程序中,控制器和视图......将合并到我的核心应用程序中。
加载模块机制基于将程序集加载到核心中的当前应用程序域,并在我的IoC
容器中注册控制器和其他服务。此外,我将模块的引用依赖项逐个加载到当前应用程序域中,因此它运行完美。
但是,我的问题是,如果同一个第三方程序集的两个不同版本被两个不同的模块引用,则会导致错误,它表示不能解决程序集异常的一个或多个依赖关系app停止!
问题:处理上述问题的一般解决方案或方法是什么?
答案 0 :(得分:2)
强命名是您问题的一般解决方案。当使用强名称时,2个不同版本的“相同”程序集被视为两个不同的程序集。
在你的模块中,
$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' });
});
这将确保给定模块仅使用给定版本的第三方依赖项。