嵌入式和安装IronPython-dll版本混乱
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了嵌入式和安装IronPython-dll版本混乱,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2086字,纯文字阅读大概需要3分钟。
内容图文
![嵌入式和安装IronPython-dll版本混乱](/upload/InfoBanner/zyjiaocheng/659/fd5f2b19081c404c8c56a803118858dc.jpg)
我有嵌入了IronPython的应用程序,并使用它来执行用户编写的脚本.当仅安装我的应用程序时,一切正常.我已嵌入IronPython 2.7.4 dll(安装后我的exe和IronPython dll位于同一文件夹中).
但是,在某些客户端计算机上,安装了IronPython 2.7.2.它将其dll安装到GAC中,我的应用程序最终使用了它们,而不是我与应用程序和应用程序一起提供的dll.这导致我的应用程序失败,因为我使用的是2.7.2中不可用的属性.
问题是.NET出于某种原因将这些程序集视为具有相同版本(2.7.0.40).正如您在下图中看到的/文件版本不同:
右一项是我的应用程序附带的版本,左一项是IronPython 2.7.2随附的版本.我没有向GAC注册任何东西,但这是在GAC中注册的东西(IronPython安装中添加了它):
C:\ $gacutil /l | findstr IronPython
IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL
IronPython.Modules, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL
如您所见,它们已注册为2.7.0.40版本.
我的问题是-如何强制我的应用程序使用2.7.4.1000版本的IronPython程序集,而不使用在GAC中注册的2.7.2.1001?为什么.NET会忽略版本号的第三部分,并且可以对其进行更改?
编辑:
如果很重要,请安装IronPython 2.7.2,我的程序将失败,并显示以下错误:
Unhandled Exception: System.MissingMethodException: Method not found: ‘Boolean IronPython.Hosting.PythonConsoleOptions.get_BasicConsole()’.
解决方法:
问题是,IronPython 2.7.2和IronPython 2.7.4都具有相同的程序集版本号,正如您所报告的那样,该版本号是2.7.0.40.
因此,鉴于此,您的问题显然是,GAC中存在IronPython.dll程序集的一个版本,而本地版本具有相同的版本号.根据that answer,无法加载本地版本而不是GAC版本.
在这种情况下,我可以想到两种可能性:
>使用新版本号重新编译(或后处理并重新签名)IronPython.dll程序集,并使用程序集重定向,以便将对常规IronPython.dll程序集的请求重定向到您的本地程序集;
>启动应用程序时,请检查IronPython版本,如果检测到不合适的IronPython版本,请要求使用者将其安装更新为IronPython 2.7.4.例如.:
string ironPythonFileVersion = ((AssemblyFileVersionAttribute)typeof(IronPython).Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)[0]).Version;
if (ironPythonFileVersion == "2.7.2.1001") {
// IronPython 2.7.2 was loaded. Deal as appropriate.
}
内容总结
以上是互联网集市为您收集整理的嵌入式和安装IronPython-dll版本混乱全部内容,希望文章能够帮你解决嵌入式和安装IronPython-dll版本混乱所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。