PostSharp 2.0包含CLR主机并实现IHostAssemblyStore :: ProvideAssembly。IHostAssemblyStore :: ProvideAssembly导致异常“定位的程序集清单定义与程序集引用不匹配”
从托管代码,我调用:
Assembly.Load("logicnp.cryptolicensing, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=4a3c0a4c668b48b4")
我IHostAssemblyStore :: ProvideAssembly的执行接收下面的输入第一个参数pBindInfo:
0x002cd578 {
dwAppDomainId=1
lpReferencedIdentity=0x03c123f8 "logicnp.cryptolicensing, version=3.0.0.0,
culture=neutral, publickeytoken=4a3c0a4c668b48b4"
lpPostPolicyIdentity=0x03c14620 "logicnp.cryptolicensing, version=3.0.0.0,
culture=neutral, publickeytoken=4a3c0a4c668b48b4, processorarchitecture=x86"
}
我的实现,然后返回正确的流。请注意,该文件的绑定标识为“logicnp.cryptolicensing,version = 3.0.0.0,culture = neutral,publickeytoken = 4a3c0a4c668b48b4”。
当我从ProvideAssembly返回此文件中,CLR抛出以下异常:
Could not load file or assembly 'logicnp.cryptolicensing, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=4a3c0a4c668b48b4' or one of its dependencies.
The located assembly's manifest definition does not match the assembly
reference. (Exception from HRESULT: 0x80131040)
所以我回来不符合政策后的参考,这是真正的大会,但这个政策后参考是不正确的。
我想知道这个问题是否有任何解决方法,或者我误解了某些东西。
这对我来说是一个重要问题,我有很多用户在我们的支持论坛上抱怨。
PS。配置:CLR 2.0 x86或x64(安装最新更新),Windows 7 x64。
我还在MSDN论坛上发布了这个问题http://social.msdn.microsoft.com/Forums/en/clr/thread/93efa20f-5423-4d55-aa3d-dadcc462d999。