使用VisualStudio制作安装包
- 格式:pdf
- 大小:544.28 KB
- 文档页数:33
利用visual studio 2010制作安装包关键字:vs2010, 安装包, C#, .NET,应用程序本文介绍如何利用Visual studio 2010制作程序的安装包,以及如何发布自己编写的程序;同时解决用.NET平台开发涉及到Framework版本的问题。
一.开发环境环境:Microsoft Visual Studio 2010语言:C#构架:.NET Framework 2.0解决方案名称:Setup1二.开发步骤1、新建项目,依次找到:其他项目类型>>安装和部署>>Visual Studio Installer>>安装项目2、选择“应用程序文件夹”项,然后在右边的空白区域右击,选择:添加>>文件,之后选中需要安装的程序的主文件(即位于../bin/Debug文件夹下的exe 文件,可以在原程序制作项目中单击F6生成)。
根据主文件,安装项目会自动添加该主文件的引用文件;如果用到第三方控件、资源等,需要自己拷入。
3、在这里还可以增加其他文件,比如图标、配置文件、图片等,另外还可以建立文件夹以便程序安装后使用。
要注意的是,如果建立的文件夹是空的,默认情况下是不会在安装时创建的,需要将该文件夹的“AlwaysCreate”属性设置为True方可。
4、然后为程序创建快捷方式:在添加的exe文件上右击,选择“创建XXX 的快捷方式”,“XXX”为该exe文件的文件名,然后将快捷方式剪切、粘贴到“用户的…程序‟菜单”和“用户桌面”。
单击某一个快捷方式,单击其”Icon”属性,选择“浏览”,找到之前添加到项目中的图标文件即可。
5、在“解决方案资源管理器”中的解决方案名称(本例中为“Setup1”)上右击,打开“属性”页,在弹出的新窗口的右下角有一个“系统必备”按钮,单击它。
如果你的项目选用的是2.0架构,因此取消默认的4.0。
另外,选中“从与我的应用程序相同的位置下载系统必备组件”,确定即可。
打包程序:1,解决方案—右键菜单“添加”—新建项目—其他项目类型—安装和部署—Visual S tudio Installer—安装项目,输入名称Setup1,点“确定”2,添加开始程序中的文件夹:右击左侧“应用程序文件夹”—添加—文件夹,自己设置名称。
这里的作用就是好管理,这里我就叫它“测试打包系统”;然后再右击左侧“用户的程序菜单”—添加—文件夹,自己设置名称,这里我就叫它“测试打包系统”。
3,添加主输出:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—项目输出-主输出-确定。
下一步:添加主输出4,添加开始程序中和桌面的主程序快捷方式:单击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),右键菜单“创建主输出来自***的快捷方式”,命名为“测试打包系统”。
然后将其分别拖到左侧“用户的程序菜单”—测试打包系统(即刚刚创建的文件夹)和左侧“用户桌面”(或单击左侧刚新建的文件夹--右侧右键—创建新的快捷方式--选择“应用程序文件夹”---主输出--“确定” ;单击左侧用户桌面--右侧右键—创建新的快捷方式---选择“应用程序文件夹”---主输出---确定)5,设置程序图标:先把图标文件放到你的程序目录下---单击左侧“应用程序文件夹”---Images(自己创建的文件夹),---空白处右键—添加—文件---图标文件。
然后左侧“用户的程序菜单下”的文件夹---单击刚才新建的程序快捷方式---属性窗口---Icon—浏览—图标文件---确定。
同理添加“用户桌面”里快捷方式的图标。
添加"快捷方式的属性"浏览找到图标文件---确定。
6,添加卸载功能:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—文件,在c:\windows\system32文件夹下找到msiexec.exe文件。
然后像添加主程序快捷方式一样在开始程序中添加这个卸载的快捷方式,名字可以自己设置,这里我就叫它“卸载系统”。
C#程序安装包制作步骤
C# 程序安装包制作步骤
1.打开Microsoft Visual Studio 2008,新建----->项目
2.展开项目类型中的“其他项目类型”,在右边“visual studio 已安装的模板”中选择“安装向导”
3. 点步骤2中的“确定”进入如下页面
4.一直点击“下一步”或者直接点击“完成”,出现如下界面
5. 单击“应用程序文件夹”。
6.在步骤5中的“应用程序文件夹”的空白处:右键---->添加--------->文件,选择对应的.exe 等文件
7.打开后出现
8.如果想在程序安装完毕后出现快捷方式,那么先选中步骤7中“tesst.exe”右键----->创建tesst.exe的快捷方式如下图,然后把“tesst.exe的快捷方式”剪切到“用户的“程序”菜单”或者“用户桌面”即可,这根据自己的需求进行选择。
9.选中解决方案Setup1中的Setup1(针对本例,不同的命名应选择不同的名称),右键--->属性,出现如下界面
10.点击“系统必备”出现
11. 通常情况下系统会自动选择“系统必备组件”,但也可以根据
自己本身项目的需求进行选择,以防部分组件未被选中,组件安装位置通常我们选择第二个,这样方便安装程序的时候下载我们添加的系统必备组件,即如下图
12.点“确定”后,返回到
13. 点击“应用”后,再点击“确定”,回到主界面如下图,点击“生成---->生成Setup1”
即可,至此,程序安装包制作完毕!
12. 在你对应的文件夹中去找到“Setup1”文件,这个文件就是刚制作完毕的安装包。
北京江南天安科技有限公司20XX年XX月XX日版本控制目录1引言 (5)1.1编写目的 (5)1.2读者对象 (5)2操作流程 (5)附图目录图2-1 新建项目 (5)图2-2 选择安装包项目 (6)图2-3 映入眼帘 (6)图2-4 添加项目执行文件 (7)图2-5 选择Primary output (7)图2-6 创建执行文件的快捷方式 (8)图2-7 粘贴在桌面文件夹下 (8)图2-8 添加文件夹 (8)图2-9 添加msiexe.exe (9)图2-10 复制ProductCode (9)图2-11 粘贴Code (10)图2-12 设置安装包属性 (10)图2-13 设为Release版 (11)1引言1.1编写目的谨防自己以后忘记。
1.2读者对象MySelf。
2操作流程1.选中要制作安装包的项目,点击菜单栏“File”→“New”→“Project”,如下图所示:图2-1新建项目2.选择“Visual Studio Installer”→“Setup Project”项,然后输入相关项,如下图所示:Name:安装包名称Location:安装包放在什么路径下Solution:1.新建一个项目;2.添加到该项目下Solution Name:如果选择添加到本项目下,不需要输入Solution Name项图2-2选择安装包项目3.在上一界面点击“OK”按钮后,进入如下界面,在右侧项目下方出现“XXX安装包”项目,如下图所示:图2-3映入眼帘4.单击左侧“Application Folder”项,在此文件夹下添加项目执行文件,在中间空白页面处单击鼠标右键,点击“Add” “Project output”项,如下图所示:图2-4添加项目执行文件5.选中“Primary output”项,点击“OK”按钮继续,如下图所示:图2-5选择Primary output注:Primary output 即为项目的执行文件。
VS程序打包生成安装包(全过程图示)转自网络,重新整理一、在这里用一个已有的自己写的小程序“MyExplorer”来进行测试,此程序里用了一些动态链接库DLL文件和Access数据库。
二、在Solution ‘MyExplorer’(解决方案)上“右击”——“添加”——“新建项目”,选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“MyExplorerSetup”,如下图所示:确定后显示如下图所示:三、添加项目需要文件(包括显示在开始菜单中和桌面上快捷方式的图标、卸载程序文件)1、在右边的“应用程序文件夹”上右击“添加”——“项目输出”,选择MyExplorer项目点击之后它会把你所用到的动态链接库一起导入进来,如下图所示:但是这时候并没有把数据库也导入,需要自己手动“右击”——“添加”——“文件”,如下图所示:如果你的工程不只一个,也需要用同样的方法把其他同一个解决方案下的工程生成的动态链接库导入进来。
2、添加卸载,在右边的“应用程序文件夹”上右击“添加”——“文件”,选择“c:\\ windows\\system32\\msiexec.exe”文件。
3、在右边的“用户的”程序”菜单”上右击“添加”——“文件”,然后选择一个*.ico的图标文件4、在右边的“用户桌面”上右击“添加”——“文件”,然后选择一个适合在桌面上显示的图标你也可以把你自己的Icon图片在“应用程序文件夹”下建立一个小的文件夹集体放图片四、创建快捷方式1、开始菜单快捷方式:在“主输出来自MyExplorer(活动)”上右击“创建”主输出来自MyExplorer(活动)”的快捷方式”,命名为startMyExplorer,并在其的属性栏中为其“Icon”选择刚才导入的图标。
并将其拖动到“用户的”程序”菜单”文件下。
2、桌面快捷方式:步骤同1。
将其拖动到“用户桌面”下3、卸载快捷方式:在msiexec.exe上右击“创建msiexec.exe 的快捷方式”,并命名为“卸载MyExplorer”。
使用vs2010制作安装包--------张在斌2013.5.21本文主要介绍一下使用英文版的vs2010制作安装包的过程,不涉及vs2010的具体使用介绍。
1.建立安装目录:在vs2010中选中File->New->Project,在弹出的对话框中,左边选择Other project Types->Setup and Deployment->V isual Studio Installer,中间选择Setup Project。
最后,更改Name的默认名字为MutiLCD,点击“OK”即可。
2.添加源代码:经过第一步之后,vs2010的中间对话框会出现三个文件夹:a)Application Foder(应用程序文件夹):主要存放程序按F5后生成的文件,是源代码工程属性的compile的Build output path的导出目录下的所有文件及文件夹。
Application Foder->右键Add->选择要添加的文件或者文件夹。
注:如果有所需要的动态库也加载进来。
最后还要把快捷方式的图标添加进来,后缀名为:ico。
如上图中的main.ico就是。
b)User’s Desktop(用户桌面):主要是存放应用程序安装时,在桌面上生成的快捷方式。
找到后缀为exe的主程序->右键->Create Shortcut to xxx.exe->修改为想要的桌面快捷方式名字->把它拖入User’s Desktop即可。
最后,还要指定快捷方式的图标,需要手动指定:选中前面常见的快捷方式->右键->Properties Window ->Icon项->browse->找到a)中添加的图标即可c)User’s Programs Menu(用户开始菜单):主要添加到用户的开始菜单,最好是个文件夹,里面包含启动程序的快捷方式和卸载快捷方式,或者说明文档。
VS制作安装包包含卸载程序Net程序打包安装与卸载制作——问题描述(一)项目已将近完工,怎样将你的程序打包,包装成一个完美的安装程序呢?今天我将我个人使用.Net制作打包程序的经验分享给大家,不足之处还希望大家能够给予指正。
面对对.Net平台开发出来的程序,它的运行对系统环境要求有点高,需要.Net Framework的支持,所以首先面对的问题是怎样将.Net Framework1.1或2.0安装在一台没有以前没有装过的机子上。
以下是我在打包过程中需要解决的问题:一.怎样将.NET程序部署到没有安装_NET Framwork的机器上?二.怎样在打包程序中自动安装SQL Server数据库?三.怎样将MSDE Sp3打包进.Net安装项目中?四.怎样将MDAC打包进.Net安装项目中?五.怎样制作.Net卸载程序?六.怎样创建各种快捷方式?解决了以上的问题后,基本上能够满足你的安装项目需要了吧?好了废话少说,现在我们马上来动手制作。
.Net程序打包安装与卸载制作——怎样将.Net程序部署到没有安装.Net Framwork的机器上?(二)怎样将.Net程序部署到没有安装.Net Framwork的机器上?部署在.Net 平台下开发的应用程序,需要安装安装对应版本的.Net Framwork,而Vsual Studio 2003并没有提供一起打包的功能,所以这一点估计大多开发者都感觉不是太好,那如何将.Net Framework安装部署到客户机上呢?其实微软提供了我们一个安装引导插件(Microsoft Visual Studio .NET 2003 引导程序插件),可以帮助我们在打包时,它会自动将.Net Framework打包放入你的安装程序中,完成了我们想要的功能。
建立安装程序项目,将自己需要打包的程序加入进去,编译过后,你会注意到在生成的安装目录下,你将会注意到多了几个文件(dotnetfx.exe、Config.ini、langpack.exe、Settings.ini),详细介绍如下:Config.ini —安装配置文件dotnetfx.exe — .Net Framework组件langpack.exe —语言包Settings —设置文件ItemSoft.msi — .msi安装文件Setup.exe —主安装程序Config的文件内容如下:[config.ini]IDS_NOT_SINGLE_INSTANCE=已有另一版本的安装程序正在运行。
C# VS2010 制作软件安装包新建安装部署首先打你的项目解决方案,在解决方案上点右键-添加-新建项目(如图1)然后在“添加项目”对话框里,选择其它项目类型-安装和部署-Visual Studio Installer-安装项目――确定安装内容设置打开文件系统-左键单击“应用程序文件夹”在右边空白窗口点击鼠标右键-添加――项目输出在添加项目输出组里选择你要的项目名,然后选择主输出确定后,会在右侧窗口出现“主输出来自XXX ”然后在主输出上点右键-创建 主输出的快捷方式出现主输出的快捷方式然后重命名成你的软件名称即可 把创建好的快捷方式拉到用户桌面里然后在快捷方式上点属性,在属性窗口设置快捷方式的图标添加你的ICO文件双击“应用程序文件夹”把ICO文件添加到“应用程序文件夹”中2.创建“用户的程序菜单”回到主窗口在“用户的‘程序’菜单”的右侧空白窗口点右键-添加-文件夹在新建的文件夹里边用同样的方法创建一个软件的快捷方式并设置图标添加软件的卸载文件在“应用程序文件夹”的右侧空白窗口点右键-添加-文件,选择C:\windows\system32\msiexec.exe文件把添加的msiexec.exe文件重命名为“Uninstall.exe”或“卸载.exe”给“Uninstall.exe”创建一个快捷方式,并剪切到“用户的程序菜单-软件名称”的右侧窗口中卸载项目先暂停,去设置一下安装项目并复制安装文件的ProductCode值,以便在卸载属性中添加该值顺便设置一下软件安装包的信息,如作者,公司名称等等卸载项目继续制作在卸载快捷方式点右键-属性,在属性窗口中的”Arguments”中输入”/x {ProductCode}”,这个ProductCode就是上一步复制的软件的ProductCode值发部安装软件在安装项目上点右键—属性—系统必备钩选上你的软件使用平台如.Microsoft .NET Framework4最后生成一下即可在Debug里可以找到生成的exe软件安装包文件。
制作VisualStudio2019(VS2019)离线安装包与制作Visual Studio 2017的离线安装包()类似,可以使⽤--layout的参数在安装前先下载安装所需要的全部⽂件,再将其制作成ISO镜像⽂件,分发给内⽹中的开发⼈员。
下⾯是⼏个⽰例:1. 制作web和桌⾯开发的安装包vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --addWeb --add Component.GitHub.VisualStudio --includeOptional --lang en-US注意:上⾯的参数—add添加了Visual Studio中所需要的功能模块上⾯的参数—lang en-us指定了语⾳包,如果需要中⽂版本,可以使⽤参数zh-cn2. 桌⾯应⽤和office应⽤开发vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --addMicrosoft.VisualStudio.Workload.Office --includeOptional --lang en-US3. C++桌⾯开发vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --lang en-US4. 下载完整的安装包vs_community.exe --layout c:\vslayout --lang en-US注意:Visual Studio 2019的完整安装包⽐较⼤,将近40GB的数据下载完成后,可以使⽤ISO镜像制作⼯具,将下载的内容制作成⼀个镜像⽂件。
MicrosoftVisualStudioInstallerProjects安装包的制作案。
前两篇介绍了关于Microsoft Visual Studio Installer Projects 安装包的制作案例的过程以及开机启动和卸载等功能,具体可以参考本⽂主要介绍篇使⽤Microsoft Visual Studio 2019(以下简称VS) ⾃定义安装弹出以及开机启动和卸载删除多余的⽂件的功能,主要⽤到了安装程序类,这是 .NET Framework 中所有⾃定义安装程序的基类,继承该类就可以在计算机上安装应⽤程序的组件通过属性,安装程序包含作为⼦级的其他安装程序的集合。
执⾏安装程序时,它会循环调试其⼦级,并调⽤、、或。
有关集合中对象的⽰例,请参阅。
属性包含有关安装的信息。
例如,有关安装的⽇志⽂件的位置的信息,保存⽅法所需的信息的⽂件的位置,以及运⾏安装可执⾏⽂件时输⼊的命令⾏。
有关安装可执⾏⽂件的⽰例,请参阅。
、、和⽅法并不总是在的同⼀实例上调⽤。
例如,你可以使⽤来安装和提交应⽤程序,然后释放对该的引⽤。
稍后,卸载应⽤程序会创建对的新引⽤,这意味着⽅法在的其他实例上调⽤。
出于此原因,请不要在安装程序中保存计算机的状态。
相反,请使⽤跨调⽤保留并传⼊、、和⽅法的。
Microsoft Visual Studio 2019(以下简称VS) ⾃定义安装弹出以及开机启动和卸载删除多余的⽂件的功能,具体步骤如下:1、新建解决⽅案QingLong,添加需要打包的项⽬MyTestWinFrm(Windows 窗体应⽤(.NET Framwork) 程序,本⽂是MyTestWinFrm⽣成的⽂件,⽤于打包),添加Setup Projects打包程序Setup2、创建⾃定义安装程序,新建类库(.NET Framwork)项⽬命名MyCustomLib,删除默认的Class1.cs⽂件,新建安装程序类,命名CustomeInstaller⾃定义安装程序类CustomeInstaller中添加如下内容,添加安装完成以后,添加注册表,设置开机启动以及卸载之后删除多余的⽂件,当然其他的安装,卸载,提交,回滚等也可以使⽤override进⾏重写,以进⾏相应的处理using Microsoft.Win32;using System;using System.Collections;using System.Collections.Generic;using ponentModel;using System.Configuration.Install;using System.Diagnostics;using System.IO;using System.Reflection;namespace MyCustomLib{[RunInstaller(true)]public partial class CustomeInstaller : Installer{public CustomeInstaller(){InitializeComponent();}///<summary>///安装完成之后的操作,可以保留安装路径到///使⽤跨调⽤保留并传⼊ Install、Commit、Rollback和 Uninstall ⽅法的 IDictionary。
MicrosoftVisualStudioInstallerProjects安装包的制作案例Microsoft Visual Studio Installer Projects 安装包的制作案例1、安装Microsoft Visual Studio Installer Projects 插件本⽂使⽤的是Microsoft Visual Studio Enterprise 2019 ,打开Microsoft Visual Studio 2019(以下简称VS) 选择菜单栏中的扩展管理扩展左侧选择联机右侧输⼊框输⼊Microsoft Visual Studio Installer Projects ,点击下载下载成功以后,关闭VS,即可安装2、创建解决⽅案QingLong,添加项⽬Windows 窗体应⽤(.NET Framwork) ,取名MyTestWinFrm,安装Microsoft Visual Studio Installer Projects 插件成功之后,重启VS ,本⽂为了演⽰,创建了⼀个Windows 窗体应⽤(.NET Framwork) 程序MyTestWinFrm,其他的项⽬也是⼀样的,都可以作为待打包的安装程序。
具体步骤如下:打开VS 按下快捷键 Ctrl+Shift+ N,选择空⽩解决⽅案点击下⼀步输⼊解决⽅案名称保存的位置点击创建,选择解决⽅案右键添加项⽬,选择 Windows 窗体应⽤(.NET Framwork) ,点击下⼀步输⼊名称和位置,点击创建项⽬MyTestWinFrm⾥⾯的具体功能,根据需⾃⾏实现,本⽂不做具体实现。
3、添加打包安装程序Setup Project选择解决⽅案QingLong,右键添加项⽬,选则 Setup Project 点击下⼀步输⼊名称点击创建4、添加需要打包的MyTestWinFrm程序到打包安装程序Setup Project中点击解决⽅案⽣成,MyTestWinFrm就会⽣成需要打包的⽂件,后⾯会⽤到这些⽣成的⽂件选择setup项⽬,右上⾓有⼀排按钮,⽂件系统编辑器,注册表编辑器,⽂件类型编辑器,⽤户界⾯编辑器,⾃定义操作编辑器,启动条件编辑器,如下图所⽰:选择⽂件系统编辑器选择 Applicaruon Folder选择项⽬点击确定5、⽣成安装包选择Setup项⽬,右键⽣成或者重新⽣成,即可⽣成安装包了,⽣成的安装包如下⽣成的安装包如下上述步骤,即可完后项⽬的打包安装了。
软件的安装部署过程--制作步骤1、在Microsoft V isual Studio .NET 的“文件”菜单上,单击“新建”,然后单击“项目”。
2、在“新建项目”对话框中,选择“其他项目类型”,再选择“安装和部署”,然后在模板中选择“安装项目”。
3、键入TestSetup 作为该程序的名称,然后单击确定。
4、添加安装需要的文件:点击“文件系统”的“应用程序文件夹”,在右边框中点击鼠标右键,选择“添加”,选择“文件”,然后选择需要部署的文件。
本例选择test.exe文件(如果该程序运行时还需要别的文件,则一起选择)。
5、在“开始”菜单上建快捷方式:A、点击“文件系统”的“用户的“程序”菜单”,在右边框中点击鼠标右键,选择“添加”,选择“文件夹”,文件夹的名称为“程序员”。
B、点击“程序员”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员秘书”。
6、在“桌面”建快捷方式:点击“用户桌面”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员”。
7、安装后自动运行程序:A、使用下面的代码创建一个auto.vbs(auto名称可以随意) 文件:Set WshShell = CreateObject( "WScript.Shell ")WshShell.Run " " " " & Property( "CustomActionData ") & " " " ",1,FalseSet WshShell = NothingB、打开安装项目并转到“自定义操作编辑器”。
C、选择“提交”节点;右击并添加一个新的“自定义操作”。
在《广东省知识产权维权援助应用系统》中,采用了VS2008自带的【Web安装项目】做成程序安装包,实现过程整理如下:1、首先在解决方案中【新建项目】:2、【web 安装项目】做成后,右键点击出现如下菜单:选择【添加】——【项目输出】3、【项目输出】内容的选择:首先在【项目】中选中解决方案中的网站。
然后多选中输出内容:【主输出】【本地化资源】【内容文件】【文档文件】【XML序列化程序集】,然后点击确定。
确定后显示如下:这样,网站中所用到的文件会自动打入安装包中,省去了因为添加文件、项目而需要手动修改安装包制作文件的麻烦。
4、下面在安装程序中指定数据库的信息,首先打开【视图】——【用户界面】5、用户界面内容如下:6、右键点击【安装】——【启动】7、选择对话框类型:8、查看【文本框(A)】的属性,修改相应提示信息,9、设置完成后,在当前解决方案中添加新建类库项目(dbinstaller),在项目中添加安装程序类。
10、如何将安装过程中录入的这些属性进行读取呢?下面添加【自定义操作】11、设定自定义操作属性。
这样设定后就可以把安装画面中的录入内容读取到DbInstaller安装程序类中进行操作了。
(TARGETDIR设定时需要特殊注意,格式与其他不一样。
)12、在安装程序类中读取画面数据:this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]13、在安装程序类中实现如下方法public override void Install(IDictionary statesaver)根据传入的参数,自己写程序实现数据库脚本的执行,数据库配置信息在配置文件中的改写,注册表的改写,文件夹权限的设定,等等,这些操作都可以用C#编程实现了!14、编译通过后,【生成】安装包,安装一下看看吧!15、好了,现在可以正常安装了,不过每次都要手动获取源代码,手动编译,手动将安装包拷贝到给测试的文件夹下。
visualStudio中winForm制作安装包①1,解决⽅案—添加—新建项⽬—其他项⽬类型—安装和部署—安装项⽬,输⼊名称Setup,点“确定”2,添加主输出:单击左侧“应⽤程序⽂件夹”,右侧右键—添加—项⽬输出-主输出-确定。
3,添加开始程序中的⽂件夹:右击左侧“⽤户的程序菜单”—添加—⽂件夹,⾃⼰设置名称。
4,添加开始程序中和桌⾯的主程序快捷⽅式:左侧单击刚新建的⽂件夹--右侧右键—创建新的快捷⽅式--选择“应⽤程序⽂件夹---主输出--“确定” 左侧单击⽤户桌⾯--右侧右键—创建新的快捷⽅式---应⽤程序⽂件夹---主输出---确定5,设置程序图标:先把图标⽂件放到你的程序⽬录下---单击左侧“应⽤程序⽂件夹”,---空⽩处右键—添加—⽂件---图标⽂件。
然后左侧“⽤户的程序菜单下”的⽂件夹---单击刚才新建的程序快捷⽅式---属性窗⼝---Icon—浏览—图标⽂件---确定。
同理添加“⽤户桌⾯”⾥快捷⽅式的图标。
6,添加卸载功能:在c:\windows\system32⽂件夹下找到msiexec.exe⽂件,复制到程序⽬录下,然后按照图标的⽅法添加到“应⽤程序⽂件夹”中,然后像添加主程序快捷⽅式⼀样在开始程序中添加这个卸载的快捷⽅式,名字可以⾃⼰设置。
然后在“解决⽅案管理器”中单击“Setup”,也就是你的安装项⽬,在属性窗⼝找到“ProductCode”,复制它后⾯的值,然后单击刚新建的卸载的快捷⽅式,属性中找到“Arguments”,在后⾯的框⾥输⼊“/x”再加上刚才复制的值就⾏了。
7,在Setup属性中可以⾃⼰设置“ProductName”和“Title”的内容;8,修改安装默认路径:单击左侧“应⽤程序⽂件夹”,属性中“DefaultLocation”把中间的“[manufacturer]”删除,否则安装路径中会出现你⾃⼰的⽤户名。
9,添加系统必备:右击setup—属性—系统必备按钮,在“指定系统必备组件的安装位置”中选择“从与我的应⽤程序相同的位置下载系统必备组件”,确定。
使用Visual Studio 制作安装包殷海峰2012年08月04日变更记录日期作者说明2012.08.04 殷海峰完成初稿I目录第1章简介 (1)第2章后处理模块 (2)2.1 新建项目 (2)2.2 增加可重定位文件 (2)2.3 增加安装位置固定的文件 (4)2.4 编译 (5)第3章系统必需 (6)3.1 收集文件 (6)3.2 新建项目 (6)3.3 增加自定义文件夹 (6)3.4 设置部署位置 (8)3.5 设置部署条件 (8)3.6 卸载时不删除 (10)3.7 编译 (11)第4章MapX控件 (12)4.1 注册COM组件 (12)4.2 注册表 (13)4.3 编译 (14)第5章主安装项目 (15)5.1 新建项目 (15)5.2 增加系统必需 (15)5.3 增加后处理模块 (16)5.4 增加MapX控件 (17)5.5 增加应用程序文件 (18)5.6 创建快捷方式 (19)5.6.1 主程序快捷方式 (19)II5.6.2 “卸载程序”快捷方式 (21)5.6.3 快捷方式的问题 (22)5.7 详述项目属性 (22)5.7.1 AddRemoveProgramsIcon属性 (24)5.7.2 InstallAllUsers属性 (25)5.7.3 Localization属性 (26)第6章杂项 (27)6.1 安装程序 (27)6.2 vdproj文件格式 (27)6.3 脚本 (28)6.4 点评 (28)6.4.1 优点 (28)6.4.2 缺点 (29)III第1章简介第1章简介制作安装包的工具很多,本文只讨论如何通过VS2008来打包GISMapper Office程序。
GISMapper Office需要安装的文件很多,大致分为如下几类:1、后处理模块所需文件;2、系统必需文件,如:mfc42.dll、msvcrt.dll……3、MapX控件所需文件;4、BCGCBPro 界面库所需文件;5、主程序。
为了便于复用,这些文件不会完全加到一个“安装和部署”项目里,而是将它们拆分成了若干子项目。
每个子项目负责打包一组文件,最终合成一个安装包。
1第2章后处理模块后处理模块的文件分为两大类,一类文件要安装到Common Files目录下,另一类文件要和主程序(exe文件)在同一文件夹下。
2.1 新建项目使用VS2008新建一个名为Post的“安装和部署”项目,如下图所示:图2.1 新建合并模块注意:一定要选择“合并模块项目”。
因为我们并不希望这个项目直接生成安装文件(*.msi和Setup.exe),而是希望它生成模块文件(*.msm)供其它安装项目调用。
2.2 增加可重定位文件2新建项目后,可以看到下图所示的“文件系统”。
如果看不到,请使用鼠标左键单击VS2008的【视图】【编辑器】【文件系统】菜单项。
图2.2 文件系统“Module Retargetable文件夹”表示该文件夹下的文件安装到电脑上的路径不固定,是可以重新定位的。
后处理模块所需的文件中,需要和exe文件在一起的文件可以放在这个“Module Retargetable文件夹”下。
具体操作为:鼠标右键单击左窗格的“Module Retargetable文件夹”。
在弹出菜单中,单击【添加】【文件】(或【文件夹】)将需要的文件添加进来即可。
图2.3 增加文件或文件夹也可以通过鼠标将文件或文件夹从资源管理器里拖放到上图的右窗格内,这样最简单。
增加文件后,显示如下:3图2.4 增加文件后的显示2.3 增加安装位置固定的文件后处理模块的文件中,有一部分需要安装到Common Files目录下。
一般情况下,这个目录位于C:\Program Files\Common Files。
但也有特殊情况,如:系统盘为D的Windows XP,这个目录就是D:\Program Files\Common Files。
再比如:64位的Windows 7下,这个目录就是C:\Program Files(x86)\Common Files。
首先,需要添加Common Files目录,其操作如下图所示:鼠标右键单击“目标计算机上的文件系统”,在弹出菜单中单击【添加特殊文件夹】下的【C ommon Files 文件夹】菜单项图2.5 添加Common Files 文件夹下图中,可以看到Common Files 文件夹已经被添加。
可以在这个文件夹4里添加所需的文件和文件夹,具体操作可参考上一节的内容。
图2.6 添加Common Files文件夹之后的显示2.4 编译选择解决方案配置为Release,然后单击【生成】菜单下的【生成解决方案】或【重新生成解决方案】菜单项。
VS2008将我们添加的文件编译打包至一个独立的文件——Post.msm,在Release目录下可以找到该文件。
msm文件是可以被其它“安装和部署”项目直接引用的,具体方法在后继章节里介绍。
5第3章系统必需第3章系统必需GISMapper Office采用VC++6.0开发,因此一些文件是必需的,如:mfc 42.dll、msvcrt.dll……这些文件将被安装到电脑的System目录下,供多个程序共同使用。
3.1 收集文件同样的mfc42.dll文件,在Windows 98、Windows 2000、Windows XP……是不同的。
如果从Windows XP的System目录下(一般位于C:\Windows\Syst em32)获得mfc42.dll,然后直接安装到Windows 98的System目录下(一般位于C:\Windows\System),这个文件很可能是不能用的。
因此,需要针对各种操作系统,分别搜集mfc42.dll。
Windows 2000 及其以上版本的 Windows,系统自带了诸如mfc42.dll、ms vcrt.dll……这些常见的文件,搜集起来很容易,直接到C:\Windows或C:\WinN T目录下查找,然后复制出来即可。
Windows 98 就比较麻烦了,系统没有自带这些常用的文件。
只能安装V C++6.0或其它一些软件之后,到C:\Windows目录下查找,然后复制出来。
建立三个文件夹:win98、win2000、winXP,将GISMapper Office需要的动态库文件(ATL.dll、mfc42.dll、msvcrt.dll、oleaut32.dll……)从Windows 9 8、Windows 2000、Windows XP里复制出来,粘贴到各个文件夹内。
3.2 新建项目使用VS2008新建一个“合并模块项目”,项目名称为SystemDll。
具体操作请参考上一章的内容。
3.3 增加自定义文件夹6鼠标右键单击“目标计算机上的文件系统”,在弹出菜单中,单击【添加特殊文件夹】下的【Custom 文件夹】图3.1 增加自定义文件夹VS2008显示如下。
请输入文件夹名称,如:win98,然后按下Enter键。
w in98文件夹就被创建出来。
图3. 2 创建自定义文件夹7使用相同的方法再创建win2000、winXP文件夹,最后显示如下:图3.3 添加文件夹后的显示再把 Windows 98、Windows 2000、Windows XP 需要的文件分别增加到上图的 win98、win2000、winXP 文件夹下。
具体操作请参考上一章的内容。
3.4 设置部署位置我们希望win98、win2000、winXP这三个文件夹里的文件将被安装到目标电脑的System目录下。
以win98文件夹的设置为例,其步骤如下:鼠标左键单击win98文件夹,然后设置DefaultLocation属性为[SystemFol der]。
图3.4 设置部署位置使用相同的方法,设置win2000、winXP文件夹的部署位置。
3.5 设置部署条件8win98下的文件只能安装到Windows 98 或 Windows Me;win2000 下的文件只能安装到 Windows 2000;winXP 下的文件只能安装到 Windows XP及其以上版本的 Windows。
这些需要设置部署条件。
鼠标左键单击win98文件夹,设置Condition属性为 Version9X >= 410。
这样win98下的文件只能被部署到Windows 98及Windows Me下。
图3.5 设置win98部署条件请设置win2000的Condition属性为 VersionNT = 500。
请设置winXP的Condition属性为 VersionNT >= 501。
需要说明的是:Version9X是Windows 9X的版本号,VersionNT是WinNT的版本号,它们都等于主版本号乘以100再加上次版本号。
具体见下表:表3.1 Version9X和VersionNT说明操作系统主版本次版本Version9X VersionNT95 4 0 400WindowsWindows 98 4 1998 2398?Windows 98第2版 4 10 410Windows Me 4 90 490Windows NT3/NT4 3/4 未知未知2000 5 0 500 WindowsWindowsXP 5 1 5012003 5 2 502 WindowsWindows Vista和20086 0 6006 1 601Windows 7和2008R29需要说明的是,如果部署到Windows 7下,不要担心winXP文件夹下的文件会破坏Windows 7已有的文件。
因为安装的时候,安装程序会比较文件的版本号,Windows XP文件的版本号比Windows 7文件的版本号低,因此不会覆盖。
3.6 卸载时不删除System目录下的文件是公用的。
卸载程序的时候,如果把mfc42.dll这些文件也删除掉,会导致其它程序不能运行。
所以在卸载程序的时候是不能删除这类文件的,具体的设置如下:鼠标左键单击win98文件夹,然后全选该文件夹下所有文件,最后设置这些文件的Permanent为True。
这样在卸载程序的时候,这些文件就不会被删除了。
使用相同方法设置win2000、winXP下的所有文件的Permanent属性。
图3.6注意:在Windows 2000及其以上版本的Windows,System目录下的文件是有保护机制的。
如:在Windows XP的C:\Windows\System32目录下搜索mf c42.dll,你会发现有两个这样的文件,如下图所示。
如果有安装程序破坏、删除了mfc42.dll,Windows系统会根据C:\Windows\System32\dllcache下的备份恢复。