刚刚接触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. 3.Bacula Client安装配置

    1.   Bacula Client安装配置 1.1.   linux客户端安装 1.1.1.  安装依赖包 yum install libacl libacl-devel 1.1.2.  Clien ...

  2. 008.建立主从表(sql实例)

    CREATE TABLE info(snumb int primary key identity(1,1),sname varchar(20),sex bit,birthday datetime ch ...

  3. Pycharm Community 配置 Django 开发环境

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

  4. dao层取值用List<map<String,Object>>接收有序map

    发现一个好玩的Map, 当需要Map有序时用java.util.LinkedHashMap接收,是有序map resultType="java.util.LinkedHashMap" ...

  5. Redis入门(二)——基本操作

    Redis作为独立的服务端,在Java中去操作redis需要通过Redis提供的jar z在这里特别申明,除了基本数据以及String外,其余对象,要想写入redis,必须序列化(即使是对象也要实现序 ...

  6. Java查漏补缺

    1.自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下: 低 ---------------------------------------------> 高 byte,short,ch ...

  7. FFmpeg常用命令学习笔记(一)基本信息查询命令

    笔者才开始学习音视频开发,FFmpeg学习笔记系列主要是从慕课网李超老师的FFmpeg音视频核心技术精讲与实战课程学习的心得体会. FFmpeg音视频核心技术精讲与实战:https://coding. ...

  8. Docker清除容器镜像命令:

    # ~/.bash_aliases # Kill all running containers. alias dockerkillall='docker kill $(docker ps -q)' # ...

  9. iterm2 "agnoster"主题设置中的一些踩坑 2018.8

    主线教程:https://www.cnblogs.com/xishuai/p/mac-iterm2.html (1)在链接的“3.配置oh My zsh”中,编辑vim~/.zshrc后两下回车,然后 ...

  10. Huffman树、霍夫曼编码

    Huffman树指的是带权路径长度WPL最小的二叉树 WPL=路径*权值 Huffman常用于压缩编码,正常传输ABCDEF这些字母需要3位二进制树来描述,但由于一篇文章中ABCDEF这些字母出现的概 ...