2 viclouis viclouis 于 2016.01.22 09:47 提问

C# 制作自定义打包程序的问题

我想根据客户的选择来决定安装什么文件,这样的安装程序怎么制作

3个回答

enpterexpress
enpterexpress   Rxr 2016.01.22 10:03
viclouis
viclouis   2016.01.25 09:24

谢谢,但这不是我想要的那种效果

Alickqubes
Alickqubes   2016.02.23 09:35

用InstallShield打包不同安装类型的安装包

需求:要将两个软件打包到一个InstallShield安装包中,但这两个软件又要分别安装。
明确要求后首先想到的是以前做的InstallShield安装包都只能运行一次安装,如果软件已经安装,再次运行安装包时就会卸载已安装的软件,这样肯定不行,必须得让其可以多次运行安装而不用卸载才行,通过查找和试验发现选择Project->Settings...->Maintenance下的Multi-Instance即可实现。
第二步是如何简便的将两个软件放到一个包中且要方便选择安装,我实现的方法是Setup Design下创建两个Feature,命名为软件1,软件2(实际编写中根据自己软件名进行命名),然后在两个Feature下分别加入两个软件所有需要安装的文件。
第三步是在InstallScript中编写选择安装的代码,在OnFirstUIBefore函数的Dlg_Start加入AskOptions对话框,如:
nResult = AskOptions ( EXCLUSIVE , "请选择要安装的软件版本" , "软件1" , bvCheck1 , "软件2" , bvCheck2 );
然后根据选择返回的值设置选择的Feature,在Dlg_SdFeatureTree中加入一下代码:
if((bvCheck1 = 1)) then//安装软件1
FeatureSelectItem (MEDIA, "软件1", TRUE);
FeatureSelectItem (MEDIA, "软件2", FALSE);
FeatureSetData (MEDIA, "软件1", COMPONENT_FIELD_VISIBLE, FALSE, "随便写个什么");
if((bvCheck2 = 1)) //安装软件2
FeatureSelectItem (MEDIA, "软件1", FALSE);
FeatureSelectItem (MEDIA, "软件2", TRUE);
FeatureSetData (MEDIA, "软件2", COMPONENT_FIELD_VISIBLE, FALSE, "随便什么");
endif;
第四步根据选择设置软件名,安装过程中和安装后在添加/删除列表里面就会显示你安装的软件的名称,如:
IFX_PRODUCT_DISPLAY_NAME = "软件1" ;
IFX_PRODUCT_NAME = "软件1" ;
IFX_SETUP_TITLE = IFX_PRODUCT_NAME;
最后编译就可执行安装了,安装后在添加/删除列表里会分别显示两个软件的名称,可对两个软件分别执行卸载。
注:所用版本installshield2010

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C# winform 安装程序打包(自定义操作)
(一),安装程序 以前用vs制作过安装程序,现在把步骤写出来,有帮助的大家一定要顶哦 第一步:建立工程 1.打开vs,新建项目->其他项目类型->安装和部署(這個子项下面有安装项目和Web安装项目等,安装项目就是普通的桌面程序安装,Web安装就是安装网站,通常安装到IIS下,这里以普通桌面程序安装为例),新建安装项目,命名为SetupTest。 2.新建工程后,可以在“解决方案
不用VS自带的打包工具,不用InstallShield。用C#自己制作安装程序
用 C#编程的朋友们,你们是否想过用代码写一个自己开发出来的软件的安装程序呢?你们是否厌烦了 Visual Studio 自带的发布功能的枯燥无味呢?你们是否觉得InstallShield 的界面过于单调呢?今天,我们就来自己写一个真正用 C#编制而成的安装程序!没错,所有的功能都是定制的,自己拷贝程序文件,写入注册表,关联文件类型……随心所欲,你可以让它实现任何功能!(当然,我这里只介绍最关键的
VS.NET打包程序自定义安装组件中获得安装包所在路径的解决办法
    在使用VS.NET制作安装包的时候,我们经常需要使用一些自定义安装过程(installer组件),往往需要自己控制和使用安装包(目录)中的某个文件,但是去无法得到这个安装包所在路径(以前制作打包时遇到这个问题,没有办法解决,也许是我对MS Install不熟悉,有谁知道的话请告知,谢谢)。后来换了个方式:把你要在安装过程中使用的文件(SQL脚本之类)作为安装项之一安装到你指定的目录,可以是
c# winform 打包部署 自定义界面 或设置开机启动
我用的是方法1,可以成功(一开始以为得在local_machine下面的run才可以,但是可能由于权限什么的问题一直添加不成功,导致浪费好多时间) 方法一: 创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
VS2013如何打包生成安装文件
简要说一下大体流程: 图片比较容易学习,我就直接把每一步截取的图片当做操作介绍了。 1、安装InstallShield2013LimitedEdition, 2、找到InstallShield2013LimitedEdition位置 3、安装可以看到的界面,点击步骤2 4、填写一些必要信息,这个激活码留着待会有用,用记事本记录下来也行。 5、下载安装之后,重启V
基于DevExpress的Winform程序安装包的制作
在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装。安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件导致系统运行出错。本文主要介绍基于DevExpress的Winform程序安装包的制作内容,包括VS2010和VS2013/V2105的不同处理方式。 我们知道,VS2010是最后一个可以使用微
NSIS:制作C#应用程序安装包
——摘录自  轻狂编程资源网            NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是一个免费的安装、卸载系统。它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。         以下是32位下NSIS制作安装包最基本的操作
VS打包部署图文详细步骤及程序防卸载的制作(密码验证卸载)
1、 在vs2010 选择“新建项目->“其他项目类型”->“ Visual StudioInstallerà “安装项目”: 命名为:Setup321 。 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件; 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。
vs2012自带打包工具进行部署安装
原文 http://www.cnblogs.com/javawebsoa/archive/2013/04/05/3001632.html#2667832 使用vs2012做的程序,程序做完后准备打包部署。VS有自带的部署安装工具,就像试试,然后就有了一堆问题问题,归根到底有点原因是:英文水平太低,看到满页面的英文,我就不想看。后来经过查找资料终于打包成功。下面来一步一步聊聊我打包部署的过程
VS2013程序打包部署(图解)
首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别。Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方便程序员调试程序;Release模式通常叫做发布模式,不包含调试信息,但是它对代码进行了优化,使程序代码和运行速度都是最优的。因此我们在发布系统之前,一定要保证系统没有Bug,也就是在Debug模式下能够成功生成解决方案。解决方案配置转换方式详见下图: