s项目属性上面选的是Any CPU,我的电脑是64位的操作系统能够正常运行,我把它改成x86,也能运行,但是,我把我的程序发布到64位的服务器系统中,就不能运行了,怎么样才能解决呢?
你是托管在 IIS 中的吗?
非托管的dll
@魔女小溪: C++ 的吗?如果是的话,修改为 64 位的话,你需要注意你的代码中对整形大小的使用,包括指针的大小。
我假设你使用的是 VC++ 2010,那么部署到其它机器时,你可能还需要将 VC 安装目录下的 msvrcr100.dll(dubug 位 msvcr100d.dll) 等拷贝目标机器。
c#
@魔女小溪: 确定目标机器安装了 x64 版本的 .Net Framework。
@Launcher: IIs里面可以设置使用32位的
@魔女小溪: 编译成 x86,然后在 IIS 中设置为 32 位。
@Launcher: 恩恩,我试试
@Launcher: 我把项目发布到测试服务器上面,也是可以的,我对比了一下测试服务器和正式服务器的配置,好像就是内存大了些
在测试服务器上面,我就是在IIs里面设置了一下那个是否启用32位程序这选项,结果就成功了,我以为正式服务器上面应该也是这样的,我去设置了,但是,还是不行
改成X64的,编译一次,再试试呗
我在本机改成了x64,这样一来,连我自己本机都不能正常运行了。。。
@魔女小溪: 不能就不能呗,能编译就行呗,编译完成,在发布到服务器试试
@哇~怪兽: 好
@哇~怪兽: 还是不行
@魔女小溪: 错误信息呢
@哇~怪兽: 同样的信息
还要看看引用的DLL
怎么说?
检查第三方dll !!!
怎么检查?
@魔女小溪:
参考这篇:http://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html
@飞扬的尘埃: 有点看的晕的说。。。
@魔女小溪: 简单的说,就是检查你项目中引用的第三方dll是x86版本还是64版本。从你描述的情况来看,应该是某个dll只有x86版本造成的。
这里说的第三方dll,除了你引用到项目中的dll,还包括系统环境中安装的dll,例如VC运行库等。
上面那个链接是提供一种自行检查dll版本的方法。