我有一个项目引用了Oceanb10许可的Slb.License。我正在建立反对Petrel 2010.1。
在运行> Petrel 2010.1(2010.2.2)的计算机上安装插件后,我使用registermodule.exe注册我的模块。除了引用了Slb.License的许可模块外,所有模块都正确注册。
RegisterModule.exe给我一个错误: “无法加载指定的模块。原因:无法加载文件或程序集” Slb.License,Version = 2009.1.4.32700,Culture = neutral,PublicKeyToken = 05cb3974809 3345b'或其依赖项之一。定位程序集的清单定义可以 es与装配参考不匹配。 (来自HRESULT的异常:0x80131040)“
错误中的版本2009.1.4.32700是与我正在构建的Petrel 2010.1一起打包的Slb.License的版本。随Petrel 2010.2.2打包的Slb.License版本为2010.1.5.21635。
有什么想法?如果我手动将我的许可证模块添加到Petrel.exe.config,我的插件正确加载并正常工作。它的RegisterModule.exe我遇到了问题。
感谢。
修改
这在以前的版本中工作,但不确定究竟是如何。
答案 0 :(得分:1)
您可以查看:
- RegisterModule使用petrel.exe.config来获取绑定重定向。你应该看到
<assemblyIdentity name="Slb.License" publicKeyToken="05cb39748093345b" culture="neutral" />
<bindingRedirect oldVersion="2009.1.4.32700-2010.1.4.63024" newVersion="2010.1.5.21635" />
有 - 确保Petrel区域中只有1个Slb.License.dll副本
作为一种解决方法,您可以使用/ f选项忽略任何错误并注册您的模块。