刚刚接触C#,在linux下面做习惯了c和c++,在本机运行OK后,得瑟的去别的机子,居然运行不了,你妹啊,怎么回事,没有.NET Framework,原来和java类似,.NET Framework相当与c#的虚拟机。装上后FW后,还是运行不起来,报以下错误

我靠,什么鸟情况。用dumpbin -import xxx.exe将所需的dll也拷过去还是不行。难道还要装VS2010才成?坑爹的我拿着vs2010装了半天,装上2010后果然能运行了,这你妹的难不成要用户装开发工具软件,这不对劲啊。果然还是有方法的--程序打包部署。在打包部署的过程中才发现,在界面上用了一个VB控件,这个控件的dll没有拷贝,估计这个拷贝多股就没问题了吧,没试过。先打包。

c#程序打包步骤:

STEP1:新建安装项目

在IAPengi-Win解决方案上增加一个项目:右键解决方案,添加--新建项目--其他项目类型--visual studio install--安装项目(或直接搜索安装项目)

解决方案前后对比:IAPengiCore不用去管,这是用C写的数据引擎算法,做成dll提供给IAPengi-Win调用的。C#打包部署只关心:1.要打包的项目(IAPengi-Win);2.怎么打包或者说怎么建立安装项目(IAPengiSetup)

STEP2:添加必要的文件

1.在“应用程序文件夹”右击 "添加--项目输出--选择IAPengi-Win项目“

2.添加卸载程序,将C:\Windows\System32中的msiexec.exe复制出来,在“应用程序文件夹”右击 "添加--文件--选择刚才复制出来的这个msiexec.exe”

3.在“应用程序文件夹”右击“添加--文件--选择你的图标*.ico以及自己写的dll,程序配置表等等”

STEP3:创建桌面及卸载快捷方式

1.创建主输出来自***的快捷方式,重命名为IAPengi-Win,属性--设置ico,拖到“用户的程序菜单”,用同样的方法创建快捷方式,拖到“用户桌面”

2.创建卸载程序快捷方式,首先记下本工程(setup工程)的ProductCode,选中setup工程--视图--其他窗口--属性窗口--ProductCode类似:{8D0930FF-63CD-4FBD-94FC-3467C38F579D}

3.创建卸载快捷方式,即msiexec.exe的快捷方式,重命名为“卸载IAPengi-Win”,右键属性窗口,找到有一项叫做Arguments,先填上/X后面粘帖上2中的ProductCode。将快捷方式“卸载IAPengi-Win”添加到“用户的程序菜单”

STEP4:打包.NET Framework

在IAPenginSetup中,项目属性,选择系统必备,选““从与我的应用程序相同的位置下载系统必备组件”,确定

生成,一个setup的程序就可以了,安装到其他机子运行OK.

补充:

程序有两个配置文件,桌面快捷方式的属性中“打开文件位置”是灰色不可用的。以下记录解决办法:

(我的快捷方式指向IAPengi-Win.exe)

1.下载Orca软件:http://download.csdn.net/detail/leo9150285/5267426

2.用orca打开打包程序里的msi文件,IAPengiSetup.msi,找到File选项,找到指向的IAPengi-Win.exe,复制File值(FileVal),下图黄色高亮部分。

3.左边列表找到shutcut选项,找到要改的快捷方式,修改Target的DefaultFeature为 [#FileVal] 这里的FileVal是2.中复制的值,注意前后加上中括号和#号---[#.......]

4.重新卸载,安装下,OK

2013-5-2日补充:

1.为做成安装项目前的程序,确实如我猜测的一样,缺少VB组件的dll文件,这个dll确实很难找,在depends里也没有看到,后来在“项目--属性--发布--应用程序文件”里有找到,贴图如下

2.做成安装项目后,安装--运行exe程序,发现程序运行不正确,很多带e指数的元件算法没有正常执行,一样的程序,没有做成安装项目前和做成安装项目后,运行的结果不一致。我的程序调用dll如下:

IAPengi-Win.exe-----》IAPCore.dll-----》xxx.dll,xxx.dll是其他的系统库。

估计在调用xxx.dll时,没有去调用,但奇怪的是系统没有任何报错提示,搞不懂为什么。

最后的解决办法是,在编译IAPCore.dll的时候,编译选项为静态(项目--属性--c/c++--代码生成--运行库改为MT开头的)

http://blog.csdn.net/leo9150285/article/details/8809454

用C#做成的程序如何打包部署,在其他PC机运行的更多相关文章

  1. Windows程序的打包,部署(vs项目打包vs2013)---ShinePans

    Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标:                    部 ...

  2. 桌面应用程序ClickOne打包部署

    http://www.cnblogs.com/weixing/p/3358740.html

  3. .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行

    说道这一块纠结了我两天时间,感觉真的很心累,Jenkins的安装就不多说了 这里我们最好直接安装到宿主机上,应该pull到的jenkins版本是2.6的,里面很多都不支持,我自己试了在容器中安装的情况 ...

  4. windows服务怎么向应用程序发消息(部署在同一台机,非SCOKET)

    命名管道:NamedPipeClientStream & NamedPipeClientStream 参考实例:http://msdn.microsoft.com/zh-cn/library/ ...

  5. 【转】VS2012程序打包部署详解

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  6. [转载]VS2012程序打包部署详解

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  7. (转) VS2012程序打包部署详解

    程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的.     经过翻阅资料发现 ...

  8. VS2013程序打包部署(图解),vs2013部署

    VS2013程序打包部署(图解),vs2013部署 首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方 ...

  9. VS2012及以上版本 程序打包部署详解

    引用:  http://blog.csdn.net/zhang_xinxiu/article/details/9099757 程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的 ...

随机推荐

  1. 手动编译用于i.MX6系列ARM的交叉编译SDK

    前言: 在前一节中,在使用别的机器(系统:UBUNTU14.04)上编译好的交叉编译SDK,配置在我的电脑(系统:UBUNTU16.04)上,用于bazel编译Tensorflow时会报arm-pok ...

  2. Linux克隆修改配置文件及IP

    Linux下安装基本的开发软件比较费劲,特别是安装mysql的时候,这时候就需要学会克隆及直接备份base虚拟机了,下次直接打开,修改网卡文件信息就完事. 克隆虚拟机eth0网卡出现的问题解决1:修改 ...

  3. golang shell 交叉编译

    #!/usr/bin/env bash set -e uname_s=`uname -s | awk '{print tolower($0)}'` uname_m=`uname -m` timeTag ...

  4. Pycharm Community 配置 Django 开发环境

    1. 安装数据库可视化工具 Database Navigator 2. 括号匹配高亮工具 HighlightBracketPair (...) Web 开发放弃 Pycharm Community 版 ...

  5. VS---《在VS2010中 使用C++创建和使用DLL》(003)

    VS---<在VS2010中 使用C++创建和使用DLL>(003) 这里实现一下,之前写好的一个工程(定义一个函数f + main函数调用),转成DLL.调用DLL测试.在两个工程里,分 ...

  6. 长期专业版 mac pycharm

    https://www.52pojie.cn/forum.php?mod=viewthread&tid=757722&tdsourcetag=s_pcqq_aiomsg

  7. RunTime.getRunTime().addShutdownHook 添加钩子

    Runtime.getRuntime().addShutdownHook(shutdownHook); google了一下它的含义:在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设 ...

  8. django-session的使用---文件session型

    3.文件Session a. 配置 settings.py       SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎 ...

  9. Codeforces Round #455 (Div. 2) 909D. Colorful Points

    题 OvO http://codeforces.com/contest/909/problem/D CF 455 div2 D CF 909D 解 算出模拟的复杂度之后就是一个很水的模拟题 把字符串按 ...

  10. 【csp模拟赛2】 爆搜 方格加数

    [题目描述] xyz1048576正在玩一个关于矩阵的游戏. 一个n*m的矩阵,矩阵中每个数都是[1,12]内的整数.你可以执行下列两个操作任意多次: (1)指定一行,将该行所有数字+1. (2)指定 ...