c#小程序换机子不能直接运行.EXE。需重新编译,求解答?

问题描述

c#小程序换机子不能直接运行.EXE。需重新编译,求解答?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;

namespace getid
{
public partial class Form1 : Form
{

    public Form1()    {        InitializeComponent();    }    private void getid()    {        udisk upan = new udisk();        string[] aa;        upan.matchDriveLetterWithSerial();        aa = upan._serialNumber.ToArray();        try        {            textBox1.Text = aa[0];        }        catch (Exception e)        {            textBox1.Text = """";            MessageBox.Show(""请在电脑U盘识别后启动程序!"");        }    }    private void button1_Click(object sender EventArgs e)    {        getid();    }}public class udisk     {    public List<string> _serialNumber = new List<string>();    #region 获取优盘的序列号    /// <summary>    /// 调用这个函数将本机所有U盘序列号存储到_serialNumber中    /// </summary>    public void matchDriveLetterWithSerial()    {        string[] diskArray;        string driveNumber;        var searcher = new ManagementObjectSearcher(""SELECT * FROM Win32_LogicalDiskToPartition"");        foreach (ManagementObject dm in searcher.Get())        {            getValueInQuotes(dm[""Dependent""].ToString());            diskArray = getValueInQuotes(dm[""Antecedent""].ToString()).Split('');            driveNumber = diskArray[0].Remove(0 6).Trim();            var disks = new ManagementObjectSearcher(""SELECT * FROM Win32_DiskDrive"");            foreach (ManagementObject disk in disks.Get())            {                if (disk[""Name""].ToString() == (""\\.\PHYSICALDRIVE"" + driveNumber) & disk[""InterfaceType""].ToString() == ""USB"")                {                    _serialNumber.Add(parseSerialFromDeviceID(disk[""PNPDeviceID""].ToString()));                }            }        }    }    private static string parseSerialFromDeviceID(string deviceId)    {        var splitDeviceId = deviceId.Split('\');        var arrayLen = splitDeviceId.Length - 1;        var serialArray = splitDeviceId[arrayLen].Split('&');        var serial = serialArray[0];        return serial;    }    private static string getValueInQuotes(string inValue)    {        var posFoundStart = inValue.IndexOf("""""");        var posFoundEnd = inValue.IndexOf("""""" posFoundStart + 1);        var parsedValue = inValue.Substring(posFoundStart + 1 (posFoundEnd - posFoundStart) - 1);        return parsedValue;    }    #endregion   }

}

用的是vs2010,当然也用过vs2013。都能在我的win7 64位上运行起来,但是在很多测试机子的一台上运行不起来,该机子是win7 64位的,用的是vs2013版本。
在那台运行不起来的机子上,使用vs2013进行编译,能运行的起来,将debug下的程序放在我的机子上,能运行起来。
提问:这样是什么问题导致的在我的机子上编译放在那台机子上运行不起来?
情况:那台机子只有装vs2013,在程序与功能中没有看到.net的组件,但是却能写c#的程序,建工程的时候却能建.net2.0到.net4.5的所有工程。求大神解答,一个礼拜多了,还是没搞懂。
重申问题:是什么问题导致的在我的机子上编译放在那台机子上运行不起来?

解决方案

按理说不会,那台机器装.net 4.5了么?有2013应该有4.5。
怎么运行不起来。什么错误?在程序的program.cs中的main第一行加上messagebox.show(),看看有没有显示。是不是程序运行了,又因为什么错误退出了。

解决方案二:
那和编译没有关系,应该是权限的问题。wmi中有些需要提升权限才能得到。

解决方案三:
另外一些山寨盗版的系统会进行所谓的“优化”而关掉wmi服务,导致程序出错。
http://blog.csdn.net/kpp2008/article/details/6582534

解决方案四:
难道你打算用U盘当USB狗?这实在是一个很愚蠢的办法。硬件狗也不贵,而用WMI去取U盘序列号并不可靠。

解决方案五:
只要有net framework对应版本。
换机器是不是导致你的程序依赖有问题了。

解决方案六:
换了环境可以运行,但是出错应该还是你的代码没有处理好,有一些你环境的依赖代码。而不是独立的

解决方案七:

使用我编译的.exe,在那台机子运行时,点击获得id按钮的异常现象(上图)。
在那台机子用源代码重新编译后,程序运行正常。我使用vs2010,那台机子使用vs2013。

时间: 2024-08-24 18:44:48

c#小程序换机子不能直接运行.EXE。需重新编译,求解答?的相关文章

线程停止-java如何停止当前正在运行的线程,新手求解答

问题描述 java如何停止当前正在运行的线程,新手求解答 最近想做一个无线数据监控服务端,用java做的,面板Jframe设置了一个Jpanel,我称这个为Jpanel 1 ,在Jpanel 1中我定义了一个多选JCheckbox,有四种监控方式可选:Bluetooth,Wifi,GPRS,Zigbee.还定义了一个JButton,分为开始ON,结束OFF,然后在JPanel 1中定义了JPanel 2,JPanel 2 中我定义了JScrollPane,scrollAndSetCursor用于

ios-Xcode运行错误,大神求解答

问题描述 Xcode运行错误,大神求解答 Command /Applications/Xcode 2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254 解决方案 这个是什么错误,求大神解答这个是什么错误,求大神解答这个是什么错误,求大神解答 解决方案二: 这不是关键.你把所有的贴上来吧. 解决方案三: 将Apple LLVM compiler 4.1

将 Java 小程序迁移到 Microsoft J# 浏览器控件

程序|控件|浏览器 Visual J# .NET 小组 Microsoft Corporation 摘要:通过 Microsoft J# 浏览器控件,开发人员可以将所编写的在 Java 虚拟机上运行的 Java 小程序迁移到 .NET 框架.本文向开发人员介绍 J# 浏览器控件,并说明将 Java 小程序迁移到 .NET 框架的步骤.本文还讨论了其他一些主题,如 J# 浏览器控件的安全性和调试,以及当前版本中不受支持的功能. 下载 HTML 小程序到对象标记转换器 (95KB) 本文假设开发人员

小程序技术方案探讨

微信小程序上线大半年,大部分技术原理也有文章介绍了,本文尝试从需求出发探讨微信小程序技术方案的来源,以及最近公测的支付宝小程序技术方案上的考量. 微信小程序 微信小程序的需求是让第三方开发者可以接入,可以使用微信的提供的接口去开发应用嵌入在微信里.对于这个需求,最简单的实现方案是:让外部开发者开发纯H5应用,在微信的 H5 容器里打开,容器提供微信 native 接口,就行了.在有小程序之前,已经有很多这样的业务接入,像京东购物,钱包里的各种友商大众点评/滴滴出行等,都可以认为是一个"小程序&q

《微信小程序:开发入门及案例详解》—— 2.5 模块化

2.5 模块化 小程序逻辑层语言是JavaScript,而JavaScript作为脚本语言在设计初期仅是为了实现简单的页面交互,由Brendan Eich在1995年花了不到十天时间发明出来,语言本身缺失了很多用于支撑大型项目的设计,而现在前端业务逻辑越来越复杂,代码也越来越多,很多问题就暴露出来.模块化主要解决JavaScript中命名冲突和文件依赖这两个问题,现在模块化在前端中使用比较广泛,如Nodejs.Requirejs.Seajs.Webpack等,它们大部分都遵循或者接近Common

微信小程序之初步探究

9月22日凌晨,微信公众平台对200个服务号发送了"微信小程序"的测试邀请.微信方面表示,"小程序"目前只是测试阶段,未来此类"小程序"的主体比较广泛,不管是个人.政府.企业.媒体,抑或是其他组织开发者,均可以申请注册和使用"小程序","小程序"发布后,在业内掀起了较大的反响. 下面是我初步探究所做的简单整理. 开发工具下载 目录结构 我们在微信提供的开发工具中新建一个项目,开发工具会给我们建立一个最基本的

程序员测试微信小程序后,发现这群人才能赚到钱

11月4日晚,小程序开放公测消息刷爆开发者的朋友圈,众多程序猿摩拳擦掌准备搭上小程序红利之车,圈里圈外喊着小程序创业的比比皆是,甚至有美女加入程序猿微信群求男友. 为何会有这么大吸引力?小程序是什么?它推出目的是什么?主要影响哪些领域?又会有哪些人将从中获利?小程序会成功吗? 我是一名程序员,也申请了小程序的开发,有一些心得感受.与磐石之心一起讨论小程序,并把心得写出来提供给各位读者. 1.小程序是什么? 官方说法:"微信之父"张小龙描述:"小程序是一个不需要下载安装就可使用

张小龙首次全面阐述小程序,宣布1月9日上线(附微信公开课演讲全文)

在今天的微信公开课广州PRO版上,"微信之父"张小龙宣布:希望小程序1月9日正式上线!同时,他解答了大家最关心的8个关于小程序的疑问: 1.小程序不用下载,没有入口,只有二维码: 2.小程序没有订阅,只有访问: 3.小程序没有商店,只有有限搜索: 4.小程序不会主动推荐,只有社交推荐: 5.没有PUSH,只有有限通知: 6.没有朋友圈分享,只能分享到聊天和群: 7.小程序并不能做戏: 8.小程序与公众号是什么关系?答案是没有关系!   以下为张小龙的演讲内容: 各位朋友,大家早上好!我

微信小程序的好处及可能的不足

微信小程序是什么?小程序基于微信体系,在微信内部不用安装就能使用,体积不超过1 M.如果简单粗暴一点,小程序可以简单理解为--"微信应用". 引用微信之父张小龙的描述: 小程序是一个不需要下载安装就可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下即可打开应用.也体现了用完即走的理念,用户不用关心是否安装太多应用的问题.应用将无处不在,随时可用,但又无需安装卸载. 原理上来说: 小程序并不是HTML 5,它是基于微信内部的底层架构和封装开发工具,在微信里面开发的应用. 它的