当前位置:编程学习 > C#/ASP.NET >>

VS2008如何制作一个安装程序,并且判断是否安装别的软件,如果没有,则需先安装别的软件

大侠们:
    小弟现在想在VS2008上创建一个安装程序,但是这个安装程序得判断是否安装了a.exe文件,如果没有责先进行a.exe文件的安装,安装完成之后紧接着安装本项目的程序。 请问该如何实现呢?

--------------------编程问答--------------------   1 新建安装部署项目 

打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。 

2 安装向导 

关闭后打开安装向导,点击下一步,或者直接点击完成。 

3 开始制作 

安装向导完成后即可进入项目文件夹: 

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。然后右击你的文件,创建快捷方式,然后把快捷方式分别复制或剪切到左边的"用户的'程序'菜单"和"用户桌面"中。这样安装程序安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式。也可以直接在"用户的'程序'菜单"和"用户桌面"相应目录下新建快捷方式,然后定位到你的文件。 

然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"DefaultLocation"的路径中的"[Manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"C:\Program Files\你的用户名\安装解决方案名称"; 

然后打开解决方案管理器,右击你的解决方案名称,选择属性:打开的属性页中,选择"系统必备", 在打开的系统必备页中,在"指定系统必备安装组件的位置"中选中如下选择项:从与我的应用程序相同的位置下载系统必备组件。选上以后,在生成的安装文件包中包含.NetFramework组件 。好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功! 

4 制作完成 

现在打开解决方案文件夹下的Debug文件夹,就可以看到生成的安装文件了。 

5 关于"卸载"功能的添加 

上面只介绍了简单的生成安装的方法,但是在VS2005下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,操作方法如下: 

在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",当然这个关系不大,改不改都行。 

然后创建一个快捷方式,放到"开始-程序"中,接下来我们要做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了。 

然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"/x {ProductCode}",好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了。 

----------------------------------------------------------------------------------------------------------------------------------------------------------------
创建 windows 应用程序   
在“文件”菜单上指向“新建”,然后选择“项目”。   
在“新建项目”对话框中,选择“项目类型”窗格中的“visual basic 项目”,然后选择“模板”窗格中的“windows 应用程序”。在“名称”框中,键入“我的记事本”。   
此项目被添加到解决方案资源管理器中,并且窗体设计器打开。   
在“工具箱”中选择“windows 窗体”选项卡,并将“按钮”(button) 控件拖到疤逯小?  
双击 button 控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码:   
shell("notepad.exe", appwinstyle.normalfocus)  
这将启动 notepad.exe 并将焦点对准它。   
在“生成”菜单上,选择“生成我的记事本”该应用程序。   
创建部署项目   
在“文件”菜单上指向“添加项目”,然后选择“新建项目”。   
在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入“我的记事本安装程序”。   
项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“属性”窗口中,选择 productname 属性,并键入“我的记事本”。   
注意 productname 属性确定应用程序显示在文件夹名称以及“添加/删除程序”对话框中的名称。  
将 windows 应用程序添加到安装程序中   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“应用程序文件夹”节点。   
在“操作”菜单上,选择“添加”->“项目输出”。   
在“添加项目输出组”对话框中,从“项目”下拉列表中选择“我的记事本”。   
从列表中选择“主输出”组,并单击“确定”。   
在“生成”菜单上选择“生成我的记事本安装程序”。   
部署应用程序(基本安装程序)  
如果正在执行一个完整的演练过程,可以跳过此步骤。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“项目”菜单上选择“安装”。   
这将运行该安装程序并在开发计算机上安装“我的记事本”。   
其余步骤演示可选的部署功能。  
为 windows 应用程序创建快捷方式  
此步骤将为您的应用程序创建一个快捷方式,安装过程中,会将该快捷方式放置到目标计算机的桌面上。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“来自‘我的记事本’的主输出”节点。   
在“操作”菜单上,选择“创建 主输出来自我的记事本(活动)的快捷方式”。   
这将添加一个“主输出来自我的记事本(活动)的快捷方式”节点。   
重命名“主输出来自我的记事本(活动)的快捷方式”快捷方式。   
选择“主输出来自我的记事本(活动)的快捷方式”,并将其拖到左窗格的“用户桌面”文件夹中。   
为 windows 应用程序创建文件关联  
此步骤为“我的记事本”添加文件关联,以便双击 .vbn 文件时启动“我的记事本”应用程序。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件类型”。   
在“文件类型编辑器”中选择“目标计算机上的文件类型”节点。在“操作”菜单上,选择“添加文件类型”。   
将添加一个“新文档类型 #1”节点,而且该节点将打开,以便您重命名。   
将“新文档类型 #1”重命名为 vbn.doc。   
在“属性”窗口中,将文件类型的 extension 属性设置为 vbn。   
选择 command 属性并单击“省略号”() 按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,并选择“来自‘我的记事本’的主输出”。   
为 windows 应用程序添加注册表项  
此步骤将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索每用户信息。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,指向“编辑器”,并选择“注册表”。   
选择“hkey_current_user”节点并将其展开,然后展开“software”节点,并选择“[manufacturer]”节点。   
注意 “manufacturer”节点两边带有括号,这表示它是一个属性。它将被输入的部署项目的 manufacturer 属性值所替代。  
在“操作”菜单上,选择“新建”->“键”。   
重命名 userchoice 键。   
在“操作”菜单上,选择“新建”,再选择“字串值”。   
重命名 textcolor 值。   
在“属性”窗口中,选择 value 属性,并输入 black。   
添加自定义安装对话框  
此步骤添加并配置一个在安装期间显示的自定义用户界面对话框。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。   
在用户界面编辑器中,选择“安装”节点下的“启动”节点。   
在“操作”菜单上,选择“添加对话框”。   
在“添加对话框”对话框中,选择“复选框 (a)”。   
在“操作”菜单上,选择“上移”两次,将“复选框 (a)”对话框放置在“选择安装文件夹”对话框之上。   
在“属性”窗口中,将 bannertext 属性设置为“示例”。   
将 bodytext 属性设置为“‘安装示例文件’复选框控制是否安装示例文件。如果处于未选中状态,则不安装示例。”   
将 checkbox1label 属性设置为“要安装示例吗?”。   
将 checkbox2visible、checkbox3visible 和 checkbox4visible 属性设置为 false。这将隐藏其他复选框。   
添加 samples 文件夹 


此步骤创建一个 samples 子文件夹,它将被安装到 application 文件夹的下面。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件系统”。“应用程序文件夹”仍应被选中。   
从“操作”菜单上指向“添加”,然后选择“文件夹”。   
将“新建文件夹 #1”重命名为“示例”。   
为应用程序创建示例文件  
此步骤创建两个简单的文本文件,如果用户在自定义对话框中选择“安装示例”选项,将安装这两个文本文件。   
使用记事本或其他文本编辑器创建一个包含文本“这是 rules.vbn”的文本文件,然后将其保存为 rules.vbn。   
注意 若要防止记事本自动添加 .txt 扩展名,请从“文件类型”下拉列表中选择“所有文件”。  
创建另一个包含文本“这是 memo.vbn”的文本文件,将其保存为 memo.vbn。   
将示例添加到安装程序中  
此步骤将示例文件添加到 samples 文件夹中,并设置决定是否安装该文件的条件。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。从“视图”菜单中指向“编辑器”,选择“文件系统”,然后选择“示例”文件夹。   
从“操作”菜单上指向“添加”,然后选择“文件”。将 rules.vbn 和 memo.vbn 文件添加到“示例”文件夹中。   
在文件系统编辑器中选择 rules.vbn。   
在“属性”窗口中,将 condition 属性设置为 checkboxa1=1。运行安装程序时,只在自定义的复选框被选中时才安装 rules.vbn 文件。   
在文件系统编辑器中选择 memo.vbn 文件。   
在“属性”窗口中,将 condition 属性设置为 checkboxa1=1。运行安装程序时,只在自定义的复选框被选中时才安装 memo.vbn 文件。   
添加启动条件来检查 internet explorer 版本  
此步骤检查在目标计算机上是否安装了 internet explorer 5.0 或更高版本,如果未安装所需版本的 internet explorer,将停止安装过程。  
注意 此步骤旨在阐述启动条件的概念;“我的记事本”应用程序实际上并不依赖于 internet explorer。  
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“启动条件”。   
在启动条件编辑器中,选择“目标计算机上的要求”节点。   
在“操作”菜单上,选择“添加文件启动条件”。   
将在“搜索目标计算机”节点下面添加一个“搜索 file1”节点,而在“启动条件”节点下面添加一个“condition1”节点。   
将“搜索 file1”重命名为“搜索 internet explorer”。   
在“属性”窗口中,将 filename 属性设置为 iexplore.exe,将 folder 属性设置为 [programfilesfolder],将 depth 属性设置为 2,将 minversion 属性设置为 5.00。   
选择“condition1”节点。   
将 message 属性设置为“该程序需要 microsoft internet explorer 5.0 或更高版本。请安装 internet explorer 并重新运行‘记事本’安装程序。”   
设置部署项目的可选属性  
此步骤设置一个属性,以便在目标计算机上没有正确版本的 windows 安装程序时,自动安装 windows 安装引导程序文件。   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,选择“属性页”。   
在“我的记事本安装程序”属性页中,选择“引导程序”下拉列表,然后选择“windows 安装引导程序”。   
在“生成”菜单上选择“生成我的记事本安装程序”。   
在开发计算机上安装“我的记事本”   
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“项目”菜单上选择“安装”。   
这将运行该安装程序并在开发计算机上安装“我的记事本”。   
将“我的记事本”部署到其他计算机上   
在 windows 资源管理器中,定位到项目目录并查找所生成的安装程序。默认路径是 \documents and settings\yourloginname\我的记事本安装程序\project configuration\我的记事本安装程序.msi,默认“项目配置”是“debug” --------------------编程问答-------------------- 推荐一款相当好用的安装包制作工作,istool  也可以是inno setup 操作非常容易。

我就是用这个的。

比起vs自带的,相当麻烦,编译也慢 --------------------编程问答-------------------- 检测是否安装了其他程序,也可以实现的,不过要自己写代码,也很easy --------------------编程问答-------------------- 请问有没有人知道答案呢? --------------------编程问答-------------------- 快来人啊 --------------------编程问答-------------------- 你是要代码吧? --------------------编程问答-------------------- 是啊,拜托了 --------------------编程问答-------------------- 我用inno set up 做的安装程序,
中间有使用到是否安装了 。net framework 的例子。如果没有,则要先安装 ,net framework
不过不适合你

你真的可以尝试下 innosetup ,非常方便。 --------------------编程问答-------------------- 晕了 --------------------编程问答-------------------- 看的头晕 --------------------编程问答-------------------- 有碰见了个嘴大的人 --------------------编程问答-------------------- 可以用IntallShield
http://blog.csdn.net/downmoon/archive/2010/05/21/5613626.aspx
--------------------编程问答-------------------- 非常好,受益匪浅啊! --------------------编程问答-------------------- 解答的真的非常厉害 --------------------编程问答-------------------- 难道就没有代码判断的吗?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,