从已签名的程序集动态加载未签名的程序集

时间:2014-02-06 20:27:27

标签: c# .net

我有一个强大的命名程序集AssemblyA。我想引用AssemmblyB,它没有强名称。这样做的最佳方式是什么?

我看到了一些关于将AssemblyB加载到单独的AppDomain中的示例,但是我遇到了一些麻烦。以下是我尝试过的(此代码来自AssemblyA):

var domain = AppDomain.CreateDomain("NewDomainName");
var pathToDll = @"\\myDLLs\AssemblyB.dll";
var tmp = domain.CreateInstanceFromAndUnwrap(pathToDll, TYPE_NAME);

现在,我不确定TYPE_NAME会使用什么。我希望能够使用AssemblyB中的多种不同类型,所以我很确定我在这里走错了路。

另一件事是我甚至无法从AssemblyA引用AssemblyB,因为一旦我这样做,AssemblyA将由于强名称/强名称不匹配而无法构建。

我是否需要以某种方式从一个新的未签名项目中引用AssemblyB?

基本上,我的目标是访问AssemblyB,因为我直接引用它。

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 您想要访问跨AppDomain的任何TYPE_NAME都应该是远程的。查看AppDomain.CreateInstanceAndUnwrap

  2. 不允许从签名程序集中引用未签名的程序集。否则,它将超过首先签署A组装的目的。

相关问题