首页 新闻 搜索 专区 学院

C#开发的程序,在其他机器上无法运行,但其他机器再编译后可以运行,不是framework的问题

0
悬赏园豆:100 [已解决问题] 解决于 2014-06-10 22:59

C#开发的程序,在其他机器上无法运行,但其他机器再编译后可以运行。非常奇怪,就是我在A机器上运行没问题,在所有其他人的电脑上运行都无法运行,不是framework的问题,都安装了。而在我另外一台电脑上编译的,其他所有的电脑都能运行,但在A机器上却无法运行,把源码拿过来编译运行就好了。

问题补充:

感谢各位的支持,不过,声明一下。

1、这些问题应该与DLL无关,因为源码放到不能运行的电脑上编译后可以正常运行。

2、与CPU无关,因为我的两台电脑都是INTEL的,而我的另外一台电脑编译的程序,可以在AMD CPU的机器上运行。

3、程序是用同一套程序装的,环境是vs 2010。

4、A电脑与其他电脑唯一的不同应该就是有固态硬盘,其他的没有。

或​跃​在​渊的主页 或​跃​在​渊 | 初学一级 | 园豆:114
提问于:2014-06-10 16:33
< >
分享
最佳答案
0

你在你的 A 机器上新建一个 Console 程序,不添加任何代码,不做任何修改,然后编译,然后放到其它机器上去,你看能运行不。

收获园豆:100
Launcher | 高人七级 |园豆:45045 | 2014-06-10 16:35

没有问题,对了,顺便提下,A电脑上是用的固态硬盘,别的都不是。

或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 16:41

@或​跃​在​渊: 很好,但是显然你没思考这么做的意义。现在我再问你:“无法运行”的具体变现形式是什么?为了减少我们俩的交流次数,我再提一个问题:你的程序是否涉及到调用 COM 组件、引用了非托管 DLL、需要 UAC 兼容性?

Launcher | 园豆:45045 (高人七级) | 2014-06-10 17:34

@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#,一些专业术语我不懂,谢谢您的热心!

或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 18:44
其他回答(6)
0

编译的时候要选择CPU

吴瑞祥 | 园豆:28851 (高人七级) | 2014-06-10 16:35

好像与CPU没关系吧,都是选择的x86平台。

支持(0) 反对(0) 或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 16:38
0

最简单的方法,把A机器扔了,如果其他电脑都是正常的。

稍微麻烦一点的方法,重新安装A电脑的Windows,或者把其他电脑的系统GHOST过来。

这么说吧,你的A电脑的环境肯定与其他电脑不同,比如Visual Studio的Service Pack没有安装,或是其他什么原因之类的。

如果你确认不是缺少一些第三方DLL的原因的话。

爱编程的大叔 | 园豆:30748 (高人七级) | 2014-06-10 16:37

呵呵,A电脑我舍不得扔啊,A电脑重装好几次了,用得跟其他电脑完全一样的ghost系统,完全一样的vs2010,完全一样的环境安装,完全一样的升级。至于dll就更不是了,这程序根本就没用的dll。

支持(0) 反对(0) 或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 16:46

@或​跃​在​渊: 

电脑扔了肯定解决问题的,这个方法比楼下的方法靠谱一点。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30748 (高人七级) | 2014-06-10 17:16
0

这是一个非常奇怪的问题,只要楼主把100分给我,问题就能解决了。

不信的话,楼主可以试一下,哈哈哈……

Firen | 园豆:5483 (大侠五级) | 2014-06-10 17:00
0

你尝试把你的运行库从微软官方下载。

然后重新安装。肯定是运行库问题的。

硬盘很大 | 园豆:16 (初学一级) | 2014-06-10 19:12
0

using MySql.Data.MySqlClient;
using SHDocVw;

检查一下这两个组件的DLL有没有一起复制过去。

I,Robot | 园豆:9563 (大侠五级) | 2014-06-10 20:29

谢谢,可以确定与DLL无关,我写了好多小程序,都遇到这个问题,而且敢保证两台机器的环境完全一样。

支持(0) 反对(0) 或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 21:28
0

竟然是因为自己两台电脑上用的MySql.Data 组件的版本不一致导致的,真是非常的郁闷,非常感谢各位的热心。

或​跃​在​渊 | 园豆:114 (初学一级) | 2014-06-10 22:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册