我们有一台32位终端服务计算机运行我们使用.NET构建的一些Windows服务。最近我们把所有东西都搬到了64位机器上。大多数事情都有效但是,我们对apachefop.net的dll感到悲伤。
特别是我们收到以下错误
错误:插件脚本服务 执行失败:无法加载文件 或汇编'apachefop.net, 版本= 0.0.0.0,文化=中立, PublicKeyToken = null'或其中一个 依赖。试图做到 加载程序不正确 格式。
我猜这是因为它不适用于64位机器。关于如何纠正这种情况的任何建议?
答案 0 :(得分:5)
问题似乎是由于您的程序集已使用anycpu设置进行编译。在这种模式下,当在64位机器上运行时,您的进程自动变为64位进程,而您的本机引用不会...并且由于无法从64位进程加载32位库,您将遇到的烦恼。
要快速诊断是否是这种情况,您可以使用作为.net框架一部分的corflags.exe: corflags.exe pathtoyourdotnetprogram / 32bit +
然后运行你的程序。如果您的软件运行良好,那么您应该更改项目中的anycpu设置以强制编译器编译为32位程序集。