C#开发的程序,在其他机器上无法运行,但其他机器再编译后可以运行。非常奇怪,就是我在A机器上运行没问题,在所有其他人的电脑上运行都无法运行,不是framework的问题,都安装了。而在我另外一台电脑上编译的,其他所有的电脑都能运行,但在A机器上却无法运行,把源码拿过来编译运行就好了。
感谢各位的支持,不过,声明一下。
1、这些问题应该与DLL无关,因为源码放到不能运行的电脑上编译后可以正常运行。
2、与CPU无关,因为我的两台电脑都是INTEL的,而我的另外一台电脑编译的程序,可以在AMD CPU的机器上运行。
3、程序是用同一套程序装的,环境是vs 2010。
4、A电脑与其他电脑唯一的不同应该就是有固态硬盘,其他的没有。
你在你的 A 机器上新建一个 Console 程序,不添加任何代码,不做任何修改,然后编译,然后放到其它机器上去,你看能运行不。
没有问题,对了,顺便提下,A电脑上是用的固态硬盘,别的都不是。
@或跃在渊: 很好,但是显然你没思考这么做的意义。现在我再问你:“无法运行”的具体变现形式是什么?为了减少我们俩的交流次数,我再提一个问题:你的程序是否涉及到调用 COM 组件、引用了非托管 DLL、需要 UAC 兼容性?
@Launcher:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
using SHDocVw;
就应用了这些组件,我敢百分百保证,另外的电脑上也有这些组件,.net 4.0 。
不知道这样我已经说清楚。我刚开始学C#,一些专业术语我不懂,谢谢您的热心!
编译的时候要选择CPU
好像与CPU没关系吧,都是选择的x86平台。
最简单的方法,把A机器扔了,如果其他电脑都是正常的。
稍微麻烦一点的方法,重新安装A电脑的Windows,或者把其他电脑的系统GHOST过来。
这么说吧,你的A电脑的环境肯定与其他电脑不同,比如Visual Studio的Service Pack没有安装,或是其他什么原因之类的。
如果你确认不是缺少一些第三方DLL的原因的话。
呵呵,A电脑我舍不得扔啊,A电脑重装好几次了,用得跟其他电脑完全一样的ghost系统,完全一样的vs2010,完全一样的环境安装,完全一样的升级。至于dll就更不是了,这程序根本就没用的dll。
@或跃在渊:
电脑扔了肯定解决问题的,这个方法比楼下的方法靠谱一点。
这是一个非常奇怪的问题,只要楼主把100分给我,问题就能解决了。
不信的话,楼主可以试一下,哈哈哈……
你尝试把你的运行库从微软官方下载。
然后重新安装。肯定是运行库问题的。
using MySql.Data.MySqlClient;
using SHDocVw;
检查一下这两个组件的DLL有没有一起复制过去。
谢谢,可以确定与DLL无关,我写了好多小程序,都遇到这个问题,而且敢保证两台机器的环境完全一样。
竟然是因为自己两台电脑上用的MySql.Data 组件的版本不一致导致的,真是非常的郁闷,非常感谢各位的热心。