发行Ironpython:缺失的X型初始化元素



我有一个用ironpython编写的应用程序,我想在其他PC上以.EXE分发。我一直在按照说明使用pyc.py,并且有些成功。我最终得到了一个包含的dir:

  • my_app.exe
  • my_app.dll
  • stdlib.dll [这包含标准的Ironpython库,如上所述的SO帖子所建议]
  • ironpython.dll
  • ironpython.modules.dll
  • microsoft.dynamic.dll
  • microsoft.scripting.dll
  • microsoft.scripting.metadata.dll

我正在使用Ironpython 2.7.3;在我的开发机上,我有.NET 4.0.30319.17929。

我遇到的问题是,当我将上述分配给其他机器时,在某些机器上,它可以完美地工作,而在其他机器上,我会得到以下内容:

Unhandled Exception: System.MissingMethodException: Method not found: 'Int32 Iro
nPython.Runtime.Operations.PythonOps.InitializeModuleEx(System.Reflection.Assemb
ly, System.String, System.String[], Boolean)'.
   at PythonMain.Main()

它在运行的计算机包括Windows 7和Windows XP框,而它失败的机器还包括Windows 7和Windows XP。我已经检查了.NET版本,比较了其工作的机器以及它不起作用的机器,但我看不到任何明显的东西。例如,在XP计算机上失败的XP计算机上,我有一个.net配置文件:

<32Bit>
1.1.4322.2494
  ->C:WINDOWSMicrosoft.NETFrameworkv1.1.4322
2.0.50727.3634
  ->C:WINDOWSMicrosoft.NETFrameworkv2.0.50727
4.0.30319.269
  ->C:WINDOWSMicrosoft.NETFrameworkv4.0.30319
< Installed .NET Frameworks >
.NET FW 1.1 SP 1
.NET FW 2.0 SP 2
.NET FW 3.0 SP 2
.NET FW 3.5 SP 1
.NET FW 4.0 Client
.NET FW 4.0 Full

在XP计算机上工作正常,我有一个.NET配置文件:

<32Bit>
1.1.4322.2494
  ->C:WindowsMicrosoft.NETFrameworkv1.1.4322
2.0.50727.3634
  ->C:WindowsMicrosoft.NETFrameworkv2.0.50727
4.0.30319.269
  ->C:WindowsMicrosoft.NETFrameworkv4.0.30319
< Installed .NET Frameworks >
.NET FW 1.1 SP 1
.NET FW 2.0 SP 2
.NET FW 3.0 SP 2
.NET FW 3.5 SP 1
.NET FW 4.0 Client
.NET FW 4.0 Full

看起来与我相同。

我真的不知道接下来要看什么;有线索吗?

杰夫·哈迪(Jeff Hardy)上面的评论是答案:获得错误的机器已经安装了ironpython的较旧版本,并且使用了这些组件,而不是在与本地元素中分布在同一dir中EXE文件。通过在有问题的机器上卸载Ironpython来解决。

相关内容

  • 没有找到相关文章

最新更新