我有一个强大的命名程序集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,因为我直接引用它。
感谢。
答案 0 :(得分:0)
您想要访问跨AppDomain的任何TYPE_NAME都应该是远程的。查看AppDomain.CreateInstanceAndUnwrap
不允许从签名程序集中引用未签名的程序集。否则,它将超过首先签署A组装的目的。