ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:587.63KB ,
资源ID:6529413      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6529413.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用VisualStudio制作安装包精.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用VisualStudio制作安装包精.docx

1、使用VisualStudio制作安装包精使用Visual Studio 制作安装包殷海峰2012年08月04日变更记录日期作者说明2012.08.04 殷海峰完成初稿I第1章简介 (1第2章后处理模块 (22.1 新建项目 (22.2 增加可重定位文件 (22.3 增加安装位置固定的文件 (42.4 编译 (5第3章系统必需 (63.1 收集文件 (63.2 新建项目 (63.3 增加自定义文件夹 (63.4 设置部署位置 (83.5 设置部署条件 (83.6 卸载时不删除 (103.7 编译 (11第4章MapX控件 (124.1 注册COM组件 (124.2 注册表 (134.3 编译 (

2、14第5章主安装项目 (155.1 新建项目 (155.2 增加系统必需 (155.3 增加后处理模块 (165.4 增加MapX控件 (175.5 增加应用程序文件 (185.6 创建快捷方式 (195.6.1 主程序快捷方式 (19II5.6.2 “卸载程序”快捷方式 (215.6.3 快捷方式的问题 (225.7 详述项目属性 (225.7.1 AddRemoveProgramsIcon属性 (245.7.2 InstallAllUsers属性 (255.7.3 Localization属性 (26第6章杂项 (276.1 安装程序 (276.2 vdproj文件格式 (276.3 脚本

3、 (286.4 点评 (286.4.1 优点 (286.4.2 缺点 (29III第1章简介第1章简介制作安装包的工具很多,本文只讨论如何通过VS2008来打包GISMapper Office程序。GISMapper Office需要安装的文件很多,大致分为如下几类:1、后处理模块所需文件;2、系统必需文件,如:mfc42.dll、msvcrt.dll3、MapX控件所需文件;4、BCGCBPro 界面库所需文件;5、主程序。为了便于复用,这些文件不会完全加到一个“安装和部署”项目里,而是将它们拆分成了若干子项目。每个子项目负责打包一组文件,最终合成一个安装包。1第2章后处理模块后处理模块的文

4、件分为两大类,一类文件要安装到Common Files目录下,另一类文件要和主程序(exe文件在同一文件夹下。2.1 新建项目使用VS2008新建一个名为Post的“安装和部署”项目,如下图所示: 图2.1 新建合并模块注意:一定要选择“合并模块项目”。因为我们并不希望这个项目直接生成安装文件(*.msi和Setup.exe,而是希望它生成模块文件(*.msm供其它安装项目调用。2.2 增加可重定位文件2新建项目后,可以看到下图所示的“文件系统”。如果看不到,请使用鼠标左键单击VS2008的【视图】【编辑器】【文件系统】菜单项。 图2.2 文件系统“Module Retargetable文件夹

5、”表示该文件夹下的文件安装到电脑上的路径不固定,是可以重新定位的。后处理模块所需的文件中,需要和exe文件在一起的文件可以放在这个“Module Retargetable文件夹”下。具体操作为:鼠标右键单击左窗格的“Module Retargetable文件夹”。在弹出菜单中,单击【添加】【文件】(或【文件夹】将需要的文件添加进来即可。 图2.3 增加文件或文件夹也可以通过鼠标将文件或文件夹从资源管理器里拖放到上图的右窗格内,这样最简单。增加文件后,显示如下:3 图2.4 增加文件后的显示2.3 增加安装位置固定的文件后处理模块的文件中,有一部分需要安装到Common Files目录下。一般情

6、况下,这个目录位于C:Program FilesCommon Files。但也有特殊情况,如:系统盘为D的Windows XP,这个目录就是D:Program FilesCommon Files。再比如:64位的Windows 7下,这个目录就是C:Program Files(x86Common Files。首先,需要添加Common Files目录,其操作如下图所示:鼠标右键单击“目标计算机上的文件系统”,在弹出菜单中单击【添加特殊文件夹】下的【C ommon Files 文件夹】菜单项 图2.5 添加Common Files 文件夹下图中,可以看到Common Files 文件夹已经被添加

7、。可以在这个文件夹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这些文件将被安装

8、到电脑的System目录下,供多个程序共同使用。3.1 收集文件同样的mfc42.dll文件,在Windows 98、Windows 2000、Windows XP是不同的。如果从Windows XP的System目录下(一般位于C:WindowsSyst em32获得mfc42.dll,然后直接安装到Windows 98的System目录下(一般位于C:WindowsSystem,这个文件很可能是不能用的。因此,需要针对各种操作系统,分别搜集mfc42.dll。Windows 2000 及其以上版本的 Windows,系统自带了诸如mfc42.dll、ms vcrt.dll这些常见的文件,搜

9、集起来很容易,直接到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新建一个“合并模块项目”,项目名称为

10、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 文件夹下。

11、具体操作请参考上一章的内容。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及

12、其以上版本的 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 Version9

13、X和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文件夹下的文件会破坏Windo

14、ws 7已有的文件。因为安装的时候,安装程序会比较文件的版本号,Windows XP文件的版本号比Windows 7文件的版本号低,因此不会覆盖。3.6 卸载时不删除System目录下的文件是公用的。卸载程序的时候,如果把mfc42.dll这些文件也删除掉,会导致其它程序不能运行。所以在卸载程序的时候是不能删除这类文件的,具体的设置如下:鼠标左键单击win98文件夹,然后全选该文件夹下所有文件,最后设置这些文件的Permanent为True。这样在卸载程序的时候,这些文件就不会被删除了。使用相同方法设置win2000、winXP下的所有文件的Permanent属性。 图3.6注意:在Windo

15、ws 2000及其以上版本的Windows,System目录下的文件是有保护机制的。如:在Windows XP的C:WindowsSystem32目录下搜索mf c42.dll,你会发现有两个这样的文件,如下图所示。如果有安装程序破坏、删除了mfc42.dll,Windows系统会根据C:WindowsSystem32dllcache下的备份恢复。10 图3.7 文件保护机制3.7 编译请编译生成SystemDll.msm,以备后用。11第4章 MapX控件使用VS2008新建一个“合并模块项目”,项目名称为MapX。把需要部署的文件增加进来。4.1 注册COM组件MapX 5.00.30的安

16、装文件中,有两个COM组件需要注册:MapX50.dll需要用 regsvr32.exe 注册;mdatasetint.tlb是类型库,需要用 regtyplib.exe 注册。对于MapX50.dll请选择注册方式为 vsdrfCOMSelfReg;对于mdatasetint.tlb请选择注册方式为 vsdrfCOM; 图4.1 注册属性事实上,把文件增加进来的时候,VS2008一般情况下都能很好的判断出使用何种注册方式。不过一旦安装时发生组件注册错误的时候,请认真考虑该如何设置这一项。124.2 注册表安装MapX控件需要修改注册表。在本机上安装MapX之后,运行regedit. exe,

17、进入注册表编辑器。导出HKEY_LOCAL_MACHINESOFTWAREMapInf oMapX5.0至一个reg文件。 图4.2 注册表VS2008里,单击【视图】【编辑器】【注册表】 图4.3 打开安装项目的注册表可以看到将要部署到目标计算机上的注册表项目: 图4.4 安装项目的注册表13鼠标右键单击“目标计算机上的注册表”,在弹出菜单里单击【导入】菜单项,将本机导出的reg文件导入。这样就省去了一项一项增加注册表项目的麻烦。往注册表里写入的内容并不是固定不变的。下面标有下划线、粗体部分是MapX50.dll的安装目录。HKEY_LOCAL_MACHINESOFTWAREMapInfoM

18、apX5.0 CommonDLLDir=C:Program FilesDacelGISMapper OfficeMapX 5.0 GeoDictionary=C:Program FilesDacelGISMapper OfficeMapX 5.0GeoDict.DCT ProgramDir=C:Program FilesDacelGISMapper OfficeMapX 5.0 SearchPaths=VersionCode=5.01问题是:现在无法知道MapX50.dll的安装目录,怎么办?请使用一个变量来代替吧,如:MAPXPATH,然后将上面下划线部分替换为MAPXPATH。具体的就是修

19、改下图中CommonDLLDir、GeoDictionary、ProgramDir的Value属性,修改结果如下图所示。 图4.5 注册表里使用变量注意:变量名MAPXPATH里不能有小写字母。至于安装程序如何将MapX50.dll的安装路径传递给MAPXPATH,后面的章节将做说明。4.3 编译请编译MapX项目,生成MapX.msm,以备后用。14第5章主安装项目这一章将搭建GISMapper Office的主安装项目。5.1 新建项目与前几章不同,主安装项目的项目类型为“安装项目”,如下图所示: 图5.1 新建项目类型编译这种类型的项目,生成的将是最终的安装程序(*.msi和Setup.

20、exe。5.2 增加系统必需现在把第3章生成的SystemDll.msm添加到主安装项目GMO里,其操作如下图所示。鼠标右键单击GMO项目,弹出菜单里单击【添加】【合并模块】,然后将SystemDll.msm添加到GMO里。15 图5.2 添加合并模块5.3 增加后处理模块再把第2章生成的Post.msm添加到主安装项目GMO里,具体操作不再赘述。假定安装过程中,用户选择安装目录为C:Program FilesDacelGISMappin g Office 3.0,这个目录就是TARGETDIR。Post.msm里处于“Module Retarge table文件夹”文件夹下的文件默认将被安装

21、到TARGETDIR。现在的问题是:GISMapping Office的主程序将安装到TARGETDIRBin目录下,而Post.msm里的文件必须和主程序在同一文件夹下,即Post.msm里的文件也必须安装到TARGETDIRBin目录,此时该怎么办?在GMO安装和部署项目里,新建一个自定义文件夹Post,具体方法请参考第3章第3节。设置Post文件夹的DefaultLocation属性为TARGETDIRBi n,如下图所示。16 设置合并模块Post.msm的属性,指定可重定位文件夹的具体位置,如下图所示。如果Post.msm有多个可重定位文件夹,则MergeModuleProperti

22、es里也会有多个对应的文件夹。 图5.3 设置Post.msm属性现在,Post.msm里的文件都将被安装到TARGETDIRBin,可以和主程序在同一个目录了。5.4 增加MapX控件17再把第4章生成的MapX.msm添加到主安装项目GMO里。创建自定义文件夹MapX,重定向MapX.msm到MapX。MapX文件夹的设置如下: 图5.4 MapX文件夹属性DefaultLocation属性就不用解释了。Property属性很重要,安装程序会将D efaultLocation的实际路径传递给Property属性指定的变量里。这里就是将TAR GETDIRMapX5.00.30这个目录传给变

23、量MAPXPATH。MapX.msm这个模块里根据MAPXPATH修改了注册表,详细信息请参考第4章。也就是说:主安装程序与合并模块通过Property属性来交换信息,所以Property属性很重要。5.5 增加应用程序文件将应用程序所需文件加入到 GMO 安装和部署项目中来,如下图所示。 图5.5 增加应用程序文件18BCGCBPro 界面库所需文件可单独放到一个Custom文件夹内(上图中的BCG文件夹,然后指定该文件夹的DefaultLocation属性为TARGETDIRBin,这样这些文件就会和主程序文件一起被安装到目录TARGETDIRBin。主程序文件及相关的一些文件,可以增加到

24、上图中的“应用程序文件夹”,它的DefaultLocation属性就是默认的安装目录,即TARGETDIR。应该对其进行设置,如下图所示: 图5.6 应用程序文件夹的属性上图中的ProgramFilesFolder表示程序目录,一般就是C:Program Files。ProductName表示软件产品名称,这个是主安装项目的一个属性,是可以设置的。5.6 创建快捷方式5.6.1 主程序快捷方式现在要在开始菜单中,增加主程序的快捷方式。其操作步骤如下图所示:鼠标左键单击“用户的“程序”菜单”。然后鼠标右键单击右窗格,在弹出菜单中单击【创建新的快捷方式】菜单项。19 图5.7 创建快捷方式VS20

25、08显示如下界面,请在这个界面里选择“应用程序文件夹”下的Bi n文件夹里的主程序文件GMOffice.exe,然后单击“确定”按钮。 图5.8 选择快捷方式的目标文件请修改这个快捷方式的Name和Icon属性,如下图所示:20 图5.9 快捷方式属性5.6.2 “卸载程序”快捷方式现在要增加一个卸载程序的快捷方式,用户单击它之后就可以卸载GISMa pper Office了。它的原理就是调用程序 msiexec.exe,并给这个程序传入参数: /xProductCode。MSI安装程序为每个软件都起了一个独一无二的产品代码(P roductCode,如:msiexec.exe /x34DB9

26、720-A27B-4F57-8057-13438DB86BD5将卸载产品代码为34DB9720-A27B-4F57-8057-13438DB86BD5的软件。主安装程序里,有这个ProductCode。鼠标左键单击解决方案资源管理器中的项目名称,在属性窗口将能看到ProductCode属性: 图5.10 ProductCode属性既然要用到程序msiexec.exe,就要将其加入安装项目。需要注意的是:不能增加 Windows XP 的msiexec.exe,而应该增加 Windows 98 系统目录下的msiexec.exe。Windows的向下兼容使得这个程序能在多数Windows下运行。

27、21创建一个快捷方式,其操作步骤请参考上一节内容。配置这个快捷方式的属性如下: 图5.11 “卸载程序”快捷方式的属性5.6.3 快捷方式的问题一个不幸的消息是:VS2008制作的安装包在安装程序后,快捷方式是有问题的:一旦被安装的文件发生了改变,它就会再运行一次安装包进行修复。如果安装包被删除了,这个快捷方式根本无法运行!解决方法就是使用OrcaMis程序,修改msi文件的快捷方式(Shortcut的目标(Target属性。如下图所示: 图5.12 修改msi文件的Shortcut5.7 详述项目属性鼠标左键单击解决方案资源管理器中的项目名称,在属性窗口将能看到该22项目的属性,如下图所示:

28、 图5.13 安装项目属性在资源管理器里,可以查看msi文件的属性。上图的Title、Author、Key words、Description分别对应下图的标题、作者、关键字、备注。23 图5.14 msi文件属性5.7.1 AddRemoveProgramsIcon属性通过“控制面板”下的“添加或删除程序”也可以删除安装好的 GISMap per Office。这个属性是用来设置下图中的图标的:24 图5.15 删除程序里的图标5.7.2 InstallAllUsers属性在 Windows NT 下安装程序,快捷方式的位置有两种选择: 图5.16 InstallAllUsers属性25如果

29、选中了“只有我”,则快捷方式将被创建在如下目录。?表示安装程序时登录Windows的用户名,这样这个快捷方式只有这个用户能看见。C:Documents and Settings?开始菜单程序如果选中了“任何人”,则快捷方式将被创建在如下目录。这样这个快捷方式可以被所有用户看见。C:Documents and SettingsAll Users开始菜单程序InstallAllUsers属性为TRUE的时候,默认选择“任何人”,否则选择“只有我”。5.7.3 Localization属性用来指定安装程序的语言属性。如果选为English,则安装程序显示的将是英文。这个属性为安装程序的国际化带来了便

30、利。26第6章 杂项 第 6 章 杂项 6.1 安装程序 使用 VS2008 编译生成的安装程序主要有两个, 一个是 msi 文件, 一个是 e xe 文件。msi 文件是 Windows Installer 的数据包,运行 msi 文件的实质是运行 Windows Installer 程序,然后打开 msi 文件进行安装。 文件用于检查安装环 exe 境,如是否需要.NET framework 3.5?如果需要就调用.NET framework 3.5 的 安装程序进行安装。如果 msi 不需要其它的安装项,则 exe 文件是可有可无的。 6.2 vdproj 文件格式 vdproj 是 UTF-8 编码的文本文件,可以使用记事本打开。 VSVersion = 3:800 表示 Visual Studio 的版本。 每个变量都是 VARIANT 类型的,3 表示数据类型,具体含义见如下定义 (定义节选自文件 C:Program FilesMicrosoft Visual StudioVC98IncludeWT YPES.H) : enum VARENUM VT_I2 = 2, VT_I4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1