打开vs2013/2015菜单扩展和更新,查找Installer,找到Microsoft Visual Studio 2015 Installer Projects并下载安装。

安装之后模板中即有“安装部署项目”。

1. 自定义安装项目:

创建一个类库项目,点击添加新建项目,选择“安装程序类”,然后重写Install函数(本例中修改了计算的path变量,也可做其他注册表之类的操作):

public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);

System.Text.StringBuilder debug = new System.Text.StringBuilder();
try
{
//foreach (string k in this.Context.Parameters.Keys)
// sb.Append(k + ":" + this.Context.Parameters[k] + "\r\n");
string 安装目录 = this.Context.Parameters["targetdir"].ToString();
安装目录 = this.过滤(安装目录);
debug.Append("安装目录:" + 安装目录 + "\r\n");
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine);
path = this.过滤(path);

debug.Append("旧path:" + path + "\r\n");
if (path.IndexOf(安装目录) == -1)
path += ";" + 安装目录;
path = path.Replace(@"\\", @"\").Replace(";;", ";");
debug.Append("新path:" + path + "\r\n");
Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.Machine);
}
catch (Exception ex)
{
debug.Append("Exception:" + ex.Message + "\r\n");

}
//下一行测试时打开
//System.IO.File.WriteAllText("d:\\log.txt", sb.ToString());
}

2. 创建一个安装部署项目

View,选择文件系统,添加前面的类为程序主输出。

View,选择自定义操作,在“Install”中增加“Appliction Dir”中上一步增加的主输出,即自定义安装类。选择此再F4显示属性,在CustomActionData中设置/targetdir="[TARGETDIR]\"   ,这应该是安装目录位置。

3. 启动条件

View菜单,选择启动条件,可以把.Net Framework4.5改为4

VS2013安装部署项目的更多相关文章

  1. Jenkins安装部署项目

    Jenkins安装部署项目 配置JDK git maven 部署到服务器 一.新建任务 二.配置jenkins 三.添加构建信息 四.应用.保存 五.踩坑填坑记录 5.1没有jar包的情况 5.2无法 ...

  2. VS2013安装部署过程详解

    注意:缺少安装部署的小伙伴,看上一篇有详细介绍 程序在“Release”平台下编译运行没有错误 第一步:“新建”------“项目”------“其他项目类型”------“安装部署”------“I ...

  3. VS 安装部署项目自解压程序解压后按顺序执行多个程序

    这篇blog介绍了如何用VS创建安装部署方案,以及如何制作自解压程序.然后我的程序中需要解压后按照顺序先后安装2个exe.winrar的解压后执行,虽然可以用分号填写多个应用,但貌似是同时执行的.为了 ...

  4. Linux Tomcat安装部署项目

    一.上传Tomcat服务器

  5. linux下docker安装部署项目(全)

    一 .系统安装 基于CentOS-7-x86_64-Minimal-1708.iso安装系统 1.2.  配置系统 1.2.1  在线更新内核版本(建议更新,旧版内核会有docker BUG) 1.2 ...

  6. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  7. AE安装部署以及监测ArcEngine runtime 9.3是否安装

    目的:用ArcEngine9.3开发项目以后,用Visual Studio2008打包工具打包: 同时监测别的机器上是否有ArcEngine Runtime或者Desktop的支持. 解决方案: 1. ...

  8. VS2013没有安装部署,安装图解

    自vs2012后就已经没有安装向导了,VS2013安装是不带安装部署的,用 InstallShield Limited Edition for Visual Studio 解决安装部署问题 第一步:“ ...

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

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

随机推荐

  1. 检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])

    第一种是以毫秒为单位计算的. 代码如下: long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 lon ...

  2. socket网络通信

    1.socket通常也称作"套接字",用于描述IP地址和端口.在internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上 ...

  3. 关于有偿提供拼图响应式后台的通知---------pintuer ui的官方通知(www.pintuer.com)

    拼图响应式前端框架版响应式后台正式发布. 考虑到目前拼图的状况,我们不打算免费开放下载,但也不会收各位朋友1分钱,该版后台将有偿提供给各位给予拼图贡献的朋友. 废话不多说,一切皆以有图有真相,下面上图 ...

  4. 利用C++不使用递归,循环和goto,打印1到100 的某一答案分析

    实验环境是在64位linux下使用g++编译器    下面是Mark Gordon的答案   The below one works on my system, can't guarantee res ...

  5. 关于arduino清空串口缓存(转)

    在arduino1.0之前的版本 Serial.flush()的作用是是清空串口缓存( dropping received incoming data).但在1.0之后的版本 Serial.flush ...

  6. JS中 计算器的简单制作

    今天学习的是JS中的if语句,除此之外老师还教给我们switch语句的用法, 我们用来写了简单计算器的算法,如下: <script> var a=prompt("请输入一个数字& ...

  7. 自定义ViewGroup

    ViewGroup --->A ViewGroup is a special view that can contain other views (called children.) The v ...

  8. Android调试小技巧(LogCat不输出、Log自动清空、install时timeout)

    问题:有时候明明连接了设备,而LogCat却没有输出 解决方法:在device界面点一下对应设备,使其处于选中状态(它适用于查看手机文件不显示的情况) 问题:前面记录的Log看着看着突然被清空了 解决 ...

  9. A*搜索

    1,从点A开始,并且把它作为待处理点存入一个"开启列表".开启列表就像一张购物清单.尽管现在列表里只有一个元素,但以后就会多起来.你的路径可能会通过它包含的方格,也可能不会.基本上 ...

  10. MVC将服务器端的物理路径转换为服务器路径

    以图片为例 后台Controller.cs public FileResult ImageUrl(string file) { return File("物理路径"+file, & ...