用C#做成的程序如何打包部署,在其他PC机运行

刚刚接触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

时间: 2024-08-08 21:08:39

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

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

Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标:                    部署机制:    三类文件  bin文件. obj文件.My Project文件 bin:   bin/debug     bin/release 这两个目录存放编译的结果以及可执行程序 exe obj:用来保存每一个模块的编译结果,这是.net的优势所在,java程序猿所羡慕的地方,由于微软有一个强

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

命名管道:NamedPipeClientStream & NamedPipeClientStream 参考实例:http://msdn.microsoft.com/zh-cn/library/bb546085(VS.90).aspx http://bbs.csdn.net/topics/390789374?page=1

Vs2010winform程序打包部署

1.新建安装部署项目 打开vs2010,选择文件->新建->项目->其他项目类型->安装和部署->选择安装项目.如下图: 2.开始制作 点击如上图中确定后进入项目开始制作: 2.1点击"应用程序文件夹"右击选择添加->文件夹或者双击"应用程序文件夹"在右边的空白处右击选择添加->文件夹.如下图: 2.2将自己开发项目中对应的文件添加到安装部署对应的文件夹中,这里我就把自己开发项目中的Dict文件夹中的文件添加到安装部署项目中

VS2013程序打包部署(图解)

首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方便程序员调试程序:Release模式通常叫做发布模式,不包含调试信息,但是它对代码进行了优化,使程序代码和运行速度都是最优的.因此我们在发布系统之前,一定要保证系统没有Bug,也就是在Debug模式下能够成功生成解决方案.解决方案配置转换方式详见下图: 现在我们只需要保证Debug模式下没问题就行,暂时不用管Release模式. 接下来就是我们今天的

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

VS2013程序打包部署(图解),vs2013部署 首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方便程序员调试程序:Release模式通常叫做发布模式,不包含调试信息,但是它对代码进行了优化,使程序代码和运行速度都是最优的.因此我们在发布系统之前,一定要保证系统没有Bug,也就是在Debug模式下能够成功生成解决方案.解决方案配置转换方式详见下图: 现在我们只需要保证Debug模式下没问题就行,

VS2012打包部署Winform程序[转]

http://blog.sina.com.cn/s/blog_7c99e6bf0101dx02.html VS2012打包部署Winform程序 打包前的准备工作: 新建一个打包部署项目,点OK,如果是第一次使用的话,会打开一个网页,按照提示的步骤来做, 点击上面的step2的网址,进入到另一个网页: 填写完右边的信息,点击“download now”即会收到一封邮件,里面有下载地址和激活码. 点击上面的连接进行下载,会下载到一个名为:InstallShield2012SPRLimitedEdi

VS2013打包部署winform程序

http://www.tuicool.com/articles/vMfMJr http://www.itnose.net/detail/6085548.html 第一步:公司名称和程序名称不需要更改的话直接设置语言,更改字体 第二步:添加 .NET Framework package ,版本视自己的程序而定 第三步:添加程序文件,现在就需要打开自己的程序位置,看看bin/Release路径下有没有文件,如果没有就要把解决方案配置改为Release模式然后重新生成解决方案.生成完毕Release下

Qt打包部署程序自动查找依赖DLL工具windeployqt

qt编译好一个exe程序之后,部署到一台没有开发环境的机器上,需要一起拷贝其依赖的dll文件.这时需要一个windeployqt工具来帮忙,因为手动拷贝的话容易遗漏. https://blog.csdn.net/graceland525/article/details/52167944 上面的链接可以参考 cmd进入编译好的exe目录,假设D:/ABC/abc.exe windeployqt abc.exe即可 原文地址:https://www.cnblogs.com/coolbear/p/10

Spring boot(4)-应用打包部署

摘自: http://blog.csdn.net/hguisu/article/details/51072683 1.Spring Boot内置web spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat.weblogic等等),当然在此之前你要对程序入口做简单调整. 对server的几个常用的配