c#程序打包现在分为两种,一种是VS自带的打包方式,还有一种是第三方的打包方式,在VS2013里面是没有自带打包安装部署的,只有第三方的创建。

第三方打包方式很简单,百度Installshield下载下来,安装好直接运行,简单容易懂

打包很有意思,上学时很喜欢玩游戏,所以假设自己做了个小游戏也能打包给别人安装玩乐,感觉挺有意思的,因为喜欢,所以才学,兴趣真的是最好的老师

直接下一步下一步就可以了,不用什么讲究,说说下一种方式吧。

新建一个安装部署解决方案,把需要的打包程序文件都添加到引用程序文件夹,要是想程序菜单和用户桌面有快捷方式的话就创建快捷方式添加到对应的文件里面

自定义操作,把你想要的执行程序等添加进来

用户界面可以添加对应的效果

选择引用程序文件夹属性,把DefaultLocation的值修改一下,去掉默认的安装路径,不然会安装到c:/里面,不好找,这个也是百度查的介绍

点击解决方案的属性,下面有图

找到ProductCode,这个是卸载的标识产品ID

把这个值搞到自定义操作的卸载属性里面,这个卸载文件是windows/system32/路径下面的msiexec.exe文件,这个卸载操作本人没有实现,装的是windows8.1系统,不是很了解

接下来还有安装时候的操作了,这个添加的是类库项目,在CustomActionData添加/targetdir="[TARGETDIR]"/属性,这样类库项目才能获取到路径值

 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Configuration.Install;
 using System.Linq;
 using System.Diagnostics;

 namespace Library1
 {
     [RunInstaller(true)]
     public partial class Installer1 : System.Configuration.Install.Installer
     {
         public Installer1()
         {
             InitializeComponent();
             //在所有安装程序运行后执行
             this.AfterInstall += new InstallEventHandler(Installer_AfterInstall);

         }
         private void Installer_AfterInstall(object sender, InstallEventArgs e)
         {
             //this.Context.Parameters["targetdir"] 获取自定义操作里面的安装路径,前提是要在自定义操作里面的CustomActionData中填入/targetdir="[TARGETDIR]/"才能获取
             string path = this.Context.Parameters["targetdir"];//获取带有targetdir属性的安装路径
             Process.Start(path + "\\终极版俄罗斯.exe");//运行指定路径的可执行程序
         }
     }
 }

这样的话安装完后会执行指定的可执行文件了,基础的操作,图文虽乱,功能俱全。

还需在学习,记录。。。

c#程序打包大全的更多相关文章

  1. 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程

    最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...

  2. VS2012程序打包部署详解

    VS2012没有自带打包工具,所以要先下载并安装一个打包工具.我采用微软提供的打包工具:  InstallShield2015LimitedEdition.下载地址:https://msdn.micr ...

  3. 他山之石——vs2013 安装与部署及程序打包

    C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio  .下载地址: InstallShield 2013 Limited Edi ...

  4. SNF开发平台WinForm之十一-程序打包-SNF快速开发平台3.3-Spring.Net.Framework

    原来我们用的是微软自带的打包工具去打包,但感觉好像也是第三方做的打包并且很是麻烦,还有时不成功报错.那综合考虑就找一个简单实用的打包工具吧,就找到了NSIS这个.具体打包步骤如下: 1.安装NSIS ...

  5. Android 程序打包和安装过程

    APP程序打包与安装的流程: APP的安装过程:

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

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

  7. 将eclipse的应用程序打包成.exe

    转自:http://blog.163.com/loveshijie_1991/blog/static/1760553112012102573437156/ 参考:http://blog.csdn.ne ...

  8. 用命令行将Java程序打包为jar文件

    如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf MyApp.jar D:Jav ...

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

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

随机推荐

  1. 对比MFC资源文件谈谈WPF布局方式

    对比MFC资源文件谈谈WPF布局方式 MFC方式 对于传统的MFC基于UI的应用程序设计通常分两步走,首先是设计UI,使用的是RC文件,然后是代码文件,对RC文件进行操作,如下面Figure 1 的基 ...

  2. Dripicons – 精美的扁平风格的免费矢量图标字体

    Dripicons 是一个好看的免费图标集,有超过 90 个扁平风格的图标,适用在 Web 应用程序中使用,如:箭头,媒体,图表等等. 集合多种矢量格式(PSD,AI,EPS,PDF,SVG),也可以 ...

  3. C语言学习012:将代码文件分成多个文件

    如果将所有的代码都写到一个文件中,当对于小项目来说不会有什么问题,但是当它一个很大的工程的时候,如果将所有代码都写到一个文件中,不但开发起来很困难,维护更是头疼,所以我们应该将代码按不同的功能分别建立 ...

  4. HoverTree开发日志之验证码

    HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能.代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时 ...

  5. 使用Unity3d做异形窗口

    项目马上上线,因为之前的登录器是使用VS2010的MFC做的,在很多电脑上会提示缺失mfcXXXX.dll,中间找寻这种解决方案,最后确定将vcredist2010_x86和我的程序打包到安装包里面, ...

  6. iOS阶段学习第四天笔记(循环)

    iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...

  7. App单个页面的最佳文本框个数是多少个?

    [1].不同大小的手机屏幕,对应的App每页最佳文本框个数,是不同的. [1.1]如果是iPhone4的屏幕尺寸,分辨率为640x960px的时候, 文本框个数最大值为:2个文本框 [计算公式] 第 ...

  8. 更改(修改)mysql自动增序列改变从1000开始

    更改(修改)mysql自动增序列改变从1000开始 ************************************************************************** ...

  9. hibernate----component-entity (人-地址-学校)

    package com.ij34.dao; import javax.persistence.*; @Entity @Table(name="school_inf") public ...

  10. java 四舍五入保留小数

    // 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.RO ...