VS制作安装包包含卸载程序

合集下载

VS2022制作安装程序

VS2022制作安装程序

VS2022 制作安装程序项目开辟完成之后,就需要制作成安装程序,以方便客户部署。

这里以我们前面开辟的职员管理信息系统项目( EmpMIS )为例,详细介绍其打包的步骤。

打包之前, EmpMIS 的解决方案图如下所示:我们分两部份讲解,第一部份是基础分部,不包含数据库的打包;第二部份是高级主题,主是要讲解如何将数据库打包进去。

本文档是第一部份。

打包步骤:一、右击“解决方案”-> 添加-> 新建项目。

在浮现的“添加新项目”对话框中,选择如下的项目类型和模块类型,并将项目名称命名为“MySetup”:同二、在上图中点击[确定]按钮之后,浮现“文件系统”视图,如下所示:各部份解释如下:1 、应用程叙文件夹:用户在安装过程中,要输入安装路径,那末安装路径中所包括的目录结构及文件,全部自来于此“应用程叙文件夹”所包含的内容;普通情况下,里面所包含的内容是主程序(即可执行文件)、所依赖的类库文件( .dll )、图标、数据库脚本文件等;2 、用户的“程序”菜单:用户安装完成之后,在用户的开始->所有程序中产生的项,普通是指向主程序的快捷方式及卸载程序等;3 、用户桌面:用户安装完成之后,在用户的桌面上产生的快捷方式。

三、右击上图中的“应用程叙文件夹”->添加->项目输出,弹出如下的对话框:在“项目”右边的下拉列表框中选择可执行文件所在项目(即表示层项目),在下面选择“主输出”和“内容文件”。

点击[确定]按钮,关闭对话框。

现在应该是这个样子:我们注意到项目中所有相关的类库文件( .dll )都自动添加进来了。

四、现在我们创建用户桌面和程序菜单中的快捷方式,方法如下:1 、右击“主输出来自 xxx( 活动)”,在弹出的上下文菜单中选择“创建主输出来自xxx( 活动) 的快捷方式”,创建好之后,应该如下图所示:2 、将上述创建好的快捷方式拖到左边的“用户桌面”中,结果如下图所示:现在要修改快捷方式的名称。

使用Visual Studio 2010 打包安装程序

使用Visual Studio 2010 打包安装程序

打包程序:1,解决方案—右键菜单“添加”—新建项目—其他项目类型—安装和部署—Visual S tudio Installer—安装项目,输入名称Setup1,点“确定”2,添加开始程序中的文件夹:右击左侧“应用程序文件夹”—添加—文件夹,自己设置名称。

这里的作用就是好管理,这里我就叫它“测试打包系统”;然后再右击左侧“用户的程序菜单”—添加—文件夹,自己设置名称,这里我就叫它“测试打包系统”。

3,添加主输出:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—项目输出-主输出-确定。

下一步:添加主输出4,添加开始程序中和桌面的主程序快捷方式:单击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),右键菜单“创建主输出来自***的快捷方式”,命名为“测试打包系统”。

然后将其分别拖到左侧“用户的程序菜单”—测试打包系统(即刚刚创建的文件夹)和左侧“用户桌面”(或单击左侧刚新建的文件夹--右侧右键—创建新的快捷方式--选择“应用程序文件夹”---主输出--“确定” ;单击左侧用户桌面--右侧右键—创建新的快捷方式---选择“应用程序文件夹”---主输出---确定)5,设置程序图标:先把图标文件放到你的程序目录下---单击左侧“应用程序文件夹”---Images(自己创建的文件夹),---空白处右键—添加—文件---图标文件。

然后左侧“用户的程序菜单下”的文件夹---单击刚才新建的程序快捷方式---属性窗口---Icon—浏览—图标文件---确定。

同理添加“用户桌面”里快捷方式的图标。

添加"快捷方式的属性"浏览找到图标文件---确定。

6,添加卸载功能:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—文件,在c:\windows\system32文件夹下找到msiexec.exe文件。

然后像添加主程序快捷方式一样在开始程序中添加这个卸载的快捷方式,名字可以自己设置,这里我就叫它“卸载系统”。

Visio 2010 的安装和卸载操作手册

Visio 2010 的安装和卸载操作手册

Visio 2010的安装与卸载目录一、Visio 2010的安装 (1)(1)下载安装文件 (1)(2)解压安装文件:Visio2010-xdowns.rar (2)(3)加载或者再次解压安装文件 (2)(4)开始安装 (4)(5)软件的激活 (7)二、Visio的卸载 (9)三、结束语 (14)一、Visio 2010的安装(1)下载安装文件下载链接:https:///s/1pKGaea3(复制链接或者直接按CTRL键的同时单击链接打开下载)链接内容说明如下:(2)解压安装文件:Visio2010-xdowns.rar(3)加载或者再次解压安装文件您可以再次解压该文件,或者用上图中的工具打开该文件,双击打开虚拟光驱,点击加载镜像→选择上图中的.ISO的镜像文件,如下图:在打开的自动播放界面,直接选择安装程序进入安装界面如果没有弹出自动播放界面,请打开我的电脑,选择安装文件安装:(4)开始安装选择立即安装进入等待期,等待时间依据每个人的电脑性能而定,一般从几分钟到十几分钟不等完成安装(5)软件的激活安装成功后,Visio软件处于未激活状态,打开安装文件夹中的:office激活工具(2010和2013通用).exe打开界面如下,选择激活OFFICE 2010 VL或者一键激活ALL并续期都可以,建议选择后者激活成功后的界面如下图,打开任意OFFICE文件,进入文件→帮助即可查看激活状态二、Visio的卸载依次点击开始菜单→控制面板→程序和功能→找到visio 2010后点击卸载当然如果您电脑上安装了360或者腾讯管家之类的软件,可以直接进入安装宝库点击卸载,如我电脑安装的是360,卸载界面如下打开卸载程序,选择visio2010产品,点击卸载卸载结束三、结束语Visio 2010的安装与卸载到此结束,如果您觉得安装过程比较麻烦的话,我从网上也找了个安装与卸载视频,供大家参考安装视频地址:/lesson/id-59620.html卸载视频地址:/lesson/id-59621.html。

vs2010发布、打包安装程序详解

vs2010发布、打包安装程序详解

这是我在网上搜到的,加以自己的理解和对一些不明白的地方做了一些更新说明。

1、在vs2010 选择“新建项目”→“其他项目类型”→“Visual Studio Installer”→“安装项目”:命名为:Setup1 ,选择好位置后点确定。

这时在VS2010中将有三个文件夹,如图:a.“应用程序文件夹”:表示要安装的应用程序需要添加的文件;b.“用户的‘程序’菜单”:表示应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;c.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。

2、应用程序文件夹中点右键,添加文件:表示添加要打包的文件;添加的文件一般是已经编译过应用程序的debug目录下的文件(主要为.exe文件,其他文件可选);如果有所需要的动态库也加载进来:如果还要添加子文件夹则需要“添加文件夹”然后把对应的子文件里的内容添加到此文件夹中;把需要创建程序快捷方式的图标也添加进来(在res文件夹下),后缀名为:ico3、在创建的项目名称(Setup1)上点击右键 属性,选择系统必备:如果在项目名称(Setup1)的“检测到的依赖项”里检测到所添加的程序文件有.NET依赖,如图:则选择所需的.NET的版本和Windows Installer3.1(可选项),如果没有则不用选。

选择:“从与我应用程序相同的位置下载系统必备组件”,这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。

在创建安装程序时,需要设置启动条件(如果有.NET依赖):在项目名称(setup1)上,点击右键选择“视图” “启动条件”:然后VS2010会弹出启动条件视图:在“启动条件”的属性中, 点击Version选择所需的.NET版本。

4、设置安装文件的目录(路径):创建的项目名称(setup1)的属性中设置参数如下图:其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;例如我的设置为:Author:nnrh;Manufacturer:M&W;ProductName:测卡程序。

c# winform 打包(带数据库安装)

c# winform 打包(带数据库安装)

c# winform 打包(带数据库安装)关于打包网上有现成的文章,(手把手教你使用VS制作winform安装包):/chankcheng/articles/1774932.html文章如下:使用VS 自带的打包工具,制作winform安装项目开发环境:VS 2008 Access操作系统:Windows XP开发语言:C#项目名称:**管理系统步骤:第一步:打开开发环境VS2008,新建项目,选择其他项目类型,再选择"安装项目",输入名称及选择安装路径;第二步:进入文件系统选项卡,选择应用程序文件夹,在中间的空白区域右键选择"添加文件",添加项目文件(exe,dll);第三步:添加项目所需文件;这里有两个文件夹需要注意(DataBase和Report),因为DataBase是存储项目数据库,而Report则是存储项目所需的报表文件.rpt,因此呢,在应用程序夹中也需要建同名的文件夹,并且添加所需的文件。

效果:第四步:为了在开始程序菜单中和桌面应用程序中看到安装程序,这里我们就需要为项目创建快捷方式。

右键选择可执行文件(PersonFinance.exe),创建快捷方式,进行重命名"**公司**管理系统",将该快捷方式拖放到'用户的"程序"菜单' 中。

重复该步骤将新建的快捷方式添加到"用户桌面" 文件夹中最好在用户菜单中建立一个文件夹,存放安装程序第五步:设置系统必备,右键选择安装项目,进入属性页中,单击"系统必备"按钮,进入系统必备对话框;勾选"创建用于安装系统必备组件的安装程序",在安装系统必备组件列表中,选择1)、Windows Installer 3.1(必选)2)、.NET Framework 3.5 (可选)参考最后说明3)、Crystal Report Basic for Visual Studio2008(x86,x64) (可选) 项目中用到了水晶报表就需要勾选此项重要一点:勾选"从与我的应用程序相同的位置下载系统必备组件(D)",其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件)到这里安装包制作差不多完成了一大半接着来第六步:卸载程序,因为安装包做好之后不能只有安装程序,还要有卸载程序首先呢,在"C:\WINDOWS\system32"路径下,找到msiexec.exe 添加到应用程序文件夹中,创建快捷方式,并命名"卸载管理系统"或"Uninstall"其次呢,选择安装项目的ProductCode右键选择卸载程序的快捷方式,进入属性,在Arguments选项中输入/x 及ProductCode; 例如:/x {6931BD71-5C5E-4DA1-A861-14C7D1A78B97}将卸载程序同时存放到用户的开始菜单的文件夹中(在第四步中新建)第七步:更改安装程序属性,右键选择安装项目属性,可以设置项目作者及名称,其他属性信息可以根据实际情况进行设置.第八步:生成安装项目生成时,会出现些警告:应将“msiexec.exe”排除,原因是其源文件“C:\WINDOWS\system32\msiexec.exe”受到“Windows 系统文件保护”。

VS2010制作安装包

VS2010制作安装包

北京江南天安科技有限公司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 即为项目的执行文件。

vs20XX如何删除解决方案资源管理器里面的项目

vs20XX如何删除解决方案资源管理器里面的项目

竭诚为您提供优质文档/双击可除vs20XX如何删除解决方案资源管理器里面的项目篇一:图解Vs20xx打包全过程(含卸载)图解Vs20xx打包全过程(含卸载功能)首先打开已经完成的工程如图:下面开始制作安装程序包。

第一步:[文件]—>[新建][项目]安装项目。

名称可以自己根据要求修改。

位置是指你要制作的安装文件存放在什么目录内,可以根据需要修改,本人一般是把它放在本工程的同一个目录内。

将解决方案改为“添入解决方案”否则Vs20xx将单独创建一个新的解决方案。

设置完后点击确定按钮。

解决方案资源管理器中增加了setup1方案。

当然也可以把图的setup1改名为install。

第二步、开始制作安装包。

安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.当然也可以直接点右键选择添加—>项目输出选择主输出之后点击确定。

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的程序菜单"和"用户桌面"中.这样安装程序安装完成后会在"开始->所有程序"和"桌面"上生成程序的快捷方式.如果想在开始程序中单独创建文件夹,你就应当在“用户的‘程序’菜单”中建立文件夹并为它起个名子,并把快捷方式放到这个文件夹中。

下面是为快捷方式添加图标,现在我们将准备好的图标复制到我们的setup1文件夹下。

并将此图标添加到Vs20xx 安装项目的“应用程序文件夹”下。

选择你的快捷方式,在它的属性对话框中选择“icon”属性项,选择浏览。

找到你的图标。

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

vs2005程序生成CAB文件,并在设备上安装和运行及卸载

vs2005程序生成CAB文件,并在设备上安装和运行及卸载

智能设备项目:将程序生成CAB文件并将CAB部署到PocketPC等仿真设备步骤如下:1.打开现有的智能设备项目,并确保“解决方案资源管理器”可见。

2. 在“文件”菜单上指向“添加”,然后单击“新建项目”。

出现“添加新项目”对话框。

3. 在左侧的“项目类型”窗格中展开“其他项目类型”节点,再单击“安装和部署”。

4. 在右侧的“模板”窗格下选择“智能设备 CAB 项目”。

这是唯一可用于智能设备的 CAB 项目类型。

其他项目类型仅用于桌面解决方案。

5. 在“名称”框中,键入 CABProject,然后单击“确定”。

此 CAB 项目即会添加到您的解决方案,并显示在“解决方案资源管理器”中。

现在显示“文件系统编辑器”的两个窗格.6.对CAB项目进行相关自定义设置(设置运行文件的安装位置)a.在文件系统编辑器的“目标计算机上的文件系统”窗格下的Program Files 文件夹上单击右键.b.选择“添加”下的“文件夹”选项, 建立该程序的文件夹名如为“digiPKU”.c.在该程序的文件夹下添加相关用于执行的文件等(EXE文件)d.注意:选中CAB项目,打开菜单项中的视图,在下拉项中选中其他窗口-à属性窗口,将属性窗口中的中文项全部改为英文,包括产品名和产商名。

7.生成CAB 文件a.在“生成”菜单上单击“生成CABProject”,或者在“解决方案资源管理器”中右击“CABProject”,再单击“生成”。

b.在“文件”菜单上单击“全部保存”。

8.将CAB文件部署到设备中。

(1).将电脑中生成的CAB文件拷到设备中(比如存储卡(Storage Card)中)(2)安装CAB文件a. 点击并打开“存储卡(Storage Card)”文件夹b. 点选该文件夹下的CAB 文件,将解开该 CAB,并将应用程序安装到设备上。

9. 查看和运行程序a. 在程序的安装位置找到刚才安装的程序,在“Program Files”文件夹下的相关程序文件夹b. 单击该程序文件夹下的相关可运行文件,查看该程序的运行效果10. 卸载刚才的程序a.点选Pocket PC“开始”菜单下的“设置”b.在“设置对话框”中点选屏幕下方的“系统”标签c.切换后点选“删除程序”图标d.在“存储内存中的程序”列表中,选择刚才安装的程序并点击“删除”e.点选“确认删除” 等待删除查看删除效果是否删除。

Visual Studio程序打包生成安装包 (全过程图示)

Visual Studio程序打包生成安装包 (全过程图示)

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”。

VS制作安装包包含卸载程序

VS制作安装包包含卸载程序

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=已有另一版本的安装程序正在运行。

MicrosoftVisualStudioInstallerProjects安装包的制作案。。。

MicrosoftVisualStudioInstallerProjects安装包的制作案。。。

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。

1C# 安装 卸载程序制作方法

1C# 安装 卸载程序制作方法

C#安装程序的制作1:新建/添加安装部署项目打开VS,点击文件->新建->项目/添加->新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)此主题相关图片如下:2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成.3:开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.这样安装程序安装安装完成后会在"开始->所有程序"和"桌面"上生成程序的快捷方式.然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";然后打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)好了,这样就完成99%了,然后点击"生成->生成Setup1",就生成成功了!4:制作完成现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.【续】关于"卸载"功能的添加上面的文章只介绍了简单的生成安装的方法,但是在2005下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,原理我就不讲了,网上一搜一堆,我只讲操作,【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",当然这个关系不大,改不改都行的.然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了,然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"/x{ProductCode}",好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了。

图解VS2010安装包制作全过程

图解VS2010安装包制作全过程

图解VS2010安装包制作全过程作者:海打开我们制作好并编译通过的程序第一步:鼠标放在”解决方案资源管理”的解决方案上,点右键选新建项目选安装项目,名称可以自己定.这里默认为Steup1我把它改为Install.目录不用改.就在你的工程里.这里增加了一个install项目第二步,开始制作安装包双击”应用程序文件夹”在打开的窗口点击右键确定对快捷方式改名后分别剪切到”用户的程序菜单”及”用户桌面”上.如果想在开始程序中单独创建文件夹,你就应当在“用户的‘程序’菜单”中建立文件夹并为它起个名子,并把快捷方式放到这个文件夹中如下图.否则他会在开始的所有程序中出现,而不是你自己的独立文件夹右击左边的"应用程序文件夹"打开属性对话框: 将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉, 不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称"。

我把它改为如下名称:[ProgramFilesFolder]\GzyGBRJ。

这样就是c:\programm file\ GzyGBRJ了。

为应用程序文件夹中添图标原文件,之后为每个快捷方式添加图标.细节就不赘述了.接下来: 打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择"系统必备"选完必备项后,下面的三种方式可按自己的要求选择.我选择了第二项.这样就不依赖互联网了.确定,回到上一级窗口,别的不用改了.确定吧!这样我就完成一安装包的制作,下面开始制作卸载程序.第一步是在”应用程序文件夹”中添加卸载原程序.这个程序在系统目录的system32目录里(c:\windows\system32) .名称为msiexec.exe.我们把他加入之后可以改名为UnInstall把快捷方式放到”用户的’程序’菜单”中我们建立的文件夹下下面我们要找到我们工程的部署项目的ProductCode它是它个程序的唯一标识.就是install项目的属性.(点击安装项目install下面的属性窗口中就有了.)把后面的那串数据复制下来.点uninstall快捷方式他的属性中有一个属性项目叫在Aguements,我们把他的值设为"/x {ProductCode}",如图这时就完成了整个安装包的制作.注意我们在”系统必备”这一步时选择了第二项,所以在我们的安装包编译后,debug目录中就有一所有必须的一些安装包.。

如何为winform程序打包(图解)

如何为winform程序打包(图解)

如何为winform程序打包(图解)1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)此主题相关图片如下:2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成.3:开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.这样安装程序安装安装完成后会在"开始->所有程序"和"桌面"上生成程序的快捷方式.然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称"; 然后打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!4:制作完成现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.【续】关于"卸载"功能的添加上面的文章只介绍了简单的生成安装的方法,但是在2005下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,原理我就不讲了,网上一搜一堆,我只讲操作,【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",当然这个关系不大,改不改都行的.然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了, 鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了,然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"/x {ProductCode}",好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了.。

vsXX如何将生成的解决方案在当前项目的文件下

vsXX如何将生成的解决方案在当前项目的文件下

vsXX如何将生成的解决方案在当前项目的文件下篇一:如何用vsXX生成可执行的exe文件如何用vsXX生成.exe可执行安装文件和.exe文件的再打包问题VSXX中build和rebuild打包生成的.msi和.exe的区别:.msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了.也允许你安装程序,但程序员在开发的时候要比开发困难的多,需要人工编写和安装,修改,卸载相关的很多内容.而msi把这写功能都集成化了,易于开发WINDWOS程序安装包vsXX生成.exe可执行安装文件:1 新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。

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

3 开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。

然后右击你的文件,创建快捷方式,然后把快捷方式分别复制或剪切到左边的"用户的'程序'菜单"和"用户桌面"中。

这样安装程序安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式。

也可以直接在"用户的'程序'菜单"和"用户桌面"相应目录下新建快捷方式,然后定位到你的文件。

然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"DefaultLocation"的路径中的"[Manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"C:/Program Files/你的用户名/安装解决方案名称";然后打开解决方案管理器,右击你的解决方案名称,选择属性:打开的属性页中,选择"系统必备",在打开的系统必备页中,在"指定系统必备安装组件的位置"中选中如下选择项:从与我的应用程序相同的位置下载系统必备组件。

visualStudio中winForm制作安装包

visualStudio中winForm制作安装包

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—属性—系统必备按钮,在“指定系统必备组件的安装位置”中选择“从与我的应⽤程序相同的位置下载系统必备组件”,确定。

用VS2005的Setup Project制作应用程序安装包

用VS2005的Setup Project制作应用程序安装包

用VS2005制作应用程序安装包1、创建一个Setup Project2、将需要安装的文件添加到Application Folder目录下。

在工程坐上角点击File System Editor 图标,弹出File System文件管理窗口3、将文件添加到Application Folder目录下此处建立了一个子目录BlueMap,子目录下还可以新建下级目录。

点击相应文件夹,在右面显示的逻辑空间中单击鼠标右键,并选择Add->File。

在弹出的对话框中选择需要添加的文件,单击open,VS2005将在该文件夹下添加文件,此处为BlueMap的子文件夹bin文件夹中。

添加文件后的效果如下。

4、创建开始菜单下的快捷方式和桌面快捷方式添加桌面快捷方式点击User’s Desktop,在右面弹出的逻辑文件夹空间中单击右键,选择create new shortcut在先前添加的程序中选择一个与快捷方式对应的exe程序,此处选择BlueMap.exe,点击确定点击该快捷方式在右面弹出的属性窗口中设置属性,此处设置快捷方式名为BlueMap1.0,将Arguments设为/x{应用程序ID}应用程序ID可以通过点击安装工程查看该工程的属性ProductCode得到。

同时我们也可以设置快捷方式图标,在添加图标之前先要将图标添加到安装文件的某个目录下。

此处IMG目录下就有如下图标。

浏览并选择图标。

添加开始菜单快捷方式。

添加方法与添加左面快捷方式方法一样只是要在user’Programs Menu下添加,为了美观最好在该文件夹下创建一个子文件夹,以免创建的快捷方式太多占用大面积开始菜单空间,影响用户心情。

此处创建了一个子文件夹并创建了两个快捷方式。

5、为应用程序添加程序卸载功能在某个目录下添加msiexec.exe文件,此处为BlueMap文件夹下,msiexec.exe 一般可以在C:\windows\system32下可以找到。

用visual studio 打包应用程序【安装程序】附加【卸载】

用visual studio 打包应用程序【安装程序】附加【卸载】

1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)此主题相关图片如下:2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成.3:开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式.然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";然后打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!4:制作完成现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.【续】关于"卸载"功能的添加上面的文章只介绍了简单的生成安装的方法,但是在2005下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,原理我就不讲了,网上一搜一堆,我只讲操作,【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",当然这个关系不大,改不改都行的.然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了,然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"/x {ProductCode}",/haojiahuo/blog/item/1fef2e6d9ef2a9f743169473.html。

Visual Studio 2008(c#)开发ActiveX控件及制作CAB包总结

Visual Studio 2008(c#)开发ActiveX控件及制作CAB包总结

开发及测试环境:(1)开发环境:Visual Studio 2008 SP1cabsdk(下载地址:/kb/310618) (2)测试环境:Windows Server 2003 R2 SP2IE62、创建项目我这里创建了三个项目:(1)HelloBossma :项目模板:Windows窗体控件库(2)HelloBossmaSetup:项目模板:安装项目(3)Web:项目模板: 网站3、HelloBossma项目这个项目用于编写具体的控件,并生成安装文件所需要的dll。

(1)添加用户控件:(2)设计控件:添加Panel、GroupBox、Label 控件。

NowTime是一个Label控件,用于显示时间。

然后在控件对应的代码文件中编写程序:using System;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace HelloBossma{/// <summary>/// Guid将用作控件的classid/// IObjectSafety的是用来标记可安全执行脚本的ActiveX控件/// </summary>[Guid("636B8CE1-7512-464C-B63C-FC75BDCA21DB"),ProgId("HelloBossma.HelloBossmaActiveX"), ComVisible(true)] public partial class HelloBossmaActiveX : UserControl, IObjectSafety {private const string _IID_IDispatch ="{00020400-0000-0000-C000-000000000046}";private const string _IID_IDispatchEx ="{a6ef9860-c720-11d0-9337-00a0c90dcaa9}";private const string _IID_IPersistStorage ="{0000010A-0000-0000-C000-000000000046}";private const string _IID_IPersistStream ="{00000109-0000-0000-C000-000000000046}";private const string _IID_IPersistPropertyBag ="{37D84F60-42CB-11CE-8135-00AA004BB851}";private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER =0x00000001;private const int INTERFACESAFE_FOR_UNTRUSTED_DATA =0x00000002;private const int S_OK = 0;private const int E_FAIL = unchecked((int)0x80004005);private const int E_NOINTERFACE = unchecked((int)0x80004002);private bool _fSafeForScripting = true;private bool _fSafeForInitializing = true;public HelloBossmaActiveX(){InitializeComponent();}/// <summary>/// 设置当前时间/// </summary>/// <param name="timeStr"></param>public void SetTime(string timeStr){bel2.Text = timeStr;}public int GetInterfaceSafetyOptions(ref Guid riid,ref int pdwSupportedOptions,ref int pdwEnabledOptions){int Rslt = E_FAIL;string strGUID = riid.ToString("B");pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA;switch (strGUID){case _IID_IDispatch:case _IID_IDispatchEx:Rslt = S_OK;pdwEnabledOptions = 0;if (_fSafeForScripting == true)pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;break;case _IID_IPersistStorage:case _IID_IPersistStream:case _IID_IPersistPropertyBag:Rslt = S_OK;pdwEnabledOptions = 0;if (_fSafeForInitializing == true)pdwEnabledOptions =INTERFACESAFE_FOR_UNTRUSTED_DATA;break;default:Rslt = E_NOINTERFACE;break;}return Rslt;}public int SetInterfaceSafetyOptions(ref Guid riid,int dwOptionSetMask,int dwEnabledOptions){int Rslt = E_FAIL;string strGUID = riid.ToString("B");switch (strGUID){case _IID_IDispatch:case _IID_IDispatchEx:if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_CALLER) &&(_fSafeForScripting == true))Rslt = S_OK;break;case _IID_IPersistStorage:case _IID_IPersistStream:case _IID_IPersistPropertyBag:if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_DATA) &&(_fSafeForInitializing == true))Rslt = S_OK;break;default:Rslt = E_NOINTERFACE;break;}return Rslt;}}}关于IObjectSafety的实现参考了:/default.aspx/Interfaces/IObjectSafety.html using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace HelloBossma{[ComImport,GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]public interface IObjectSafety{[PreserveSig]int GetInterfaceSafetyOptions(ref Guid riid,[MarshalAs(UnmanagedType.U4)]ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref intpdwEnabledOptions);[PreserveSig()]int SetInterfaceSafetyOptions(ref Guid riid,[MarshalAs(UnmanagedType.U4)]int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions);}}这里还包含了一个可以被外部调用的方法,传进来一个字符参数,并显示出来:/// <summary>/// 设置当前时间/// </summary>/// <param name="timeStr"></param>public void SetTime(string timeStr){bel2.Text = timeStr;}(3)设置生成属性,勾选:为Com互操作注册(4)生成项目,生成这两个文件:HelloBossma.dllHelloBossma.tlb是必须的,否则生成不成功。

使用VisualStudioInstaller2015打包WPF程序

使用VisualStudioInstaller2015打包WPF程序

使⽤VisualStudioInstaller2015打包WPF程序前⾔做过WPF项⽬,就少不了要将程序打包部署到客户现场,因为⼀般长时间不会更新打包程序,每次变动较⼤需要重新配置打包程序时,就会有些⽣疏,不那么得⼼应⼿。

为了⽅便记忆,记录到博客中。

准备因为做过的项⽬都是⽤VS2015编写的,所以选择⽹上使⽤较多的Visual Studio Installer2015⼯具。

下载地址:下载完成后,直接运⾏安装即可。

打包1.创建打包项⽬右键——>新建项⽬——>选择其他项⽬类型——>选择Visual Studio Installer - Setup Project弹出如下窗体:稍微解释⼀下:第⼀个⽂件夹包含打包程序的所有⽂件(dll,ico等)内容,相当于普通项⽬中的Debug⽂件夹。

第⼆个⽂件夹包含将要安装者桌⾯显⽰的内容,⼀般以ico图标作为显⽰。

第三个⽂件夹显⽰在安装者电脑的开始菜单中,⼀般包含删除卸载程序的⽂件。

2.配置程序信息选中新建的Setup程序,按F4打开属性窗⼝。

⼀般情况,修改Author、Description、Mnufcture、ProductName、Title属性即可,分别代表作者、程序安装时的描述、公司名、产品名、安装引导的标题。

Mnufcture和Author将会显⽰控制⾯板查看程序时看到。

注意ProductCode属性,其值关系到卸载。

3.程序封装右键DemoSetup项⽬,选择View——>⽂件系统选择第⼀个⽂件夹,右键Add——>项⽬输出选择你要打包的主程序项⽬,选择为主输出,点击确定。

注意这⾥添加后的⽂件并不全,可打开项⽬的Debug⽂件,对⽐⼀下,将缺少的其他⽂件或⽂件夹,图⽚等添加进来。

当程序架构分层⽐较多时,⽐如界⾯模块和打包程序不⼀个项⽬,可以通过添加内容⽂件的⽅式添加进来。

4.联动⽤户桌⾯与开始菜单找到主输出 Output(Active),右键创建快捷⽅式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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= 已有另一版本的安装程序正在运行。

该应用程序一次只能运行一个版本。

IDS_DIALOG_CAPTION=%s 安装IDS_SINGLE_INSTANCE_FAIL=CreateMutex 无法对单个的实例检查分配句柄。

IDS_SETUP_FAILURE=%s 安装失败。

如果问题继续存在,请与产品支持人员联系。

IDS_DEFAULT_PRODUCTNAME= 应用程序IDS_SETTINGS_INIT_FAILURE= 安装设置文件’%s 在解析时出错,或者无法定位该文件。

IDS_CREATE_PROCESS_FAILURE= 下列命令行的CreateProcess 操作失败: %s 。

IDS_INSUFFICIENT_PRIVILEGES= 运行%s 安装程序要求具有本地系统管理员的权限。

安装程序现在退出。

IDS_DIALOG_TEXT= 单击”确定”开始安装%1 。

单击”取消” 退出安装。

IDS_ERROR_CAPTION=%s 安装错误IDS_VERSION_DETECT_FAILED=%1 的版本检测失败。

请确保安装程序存在于指定位置。

%n%n 返回消息: %2IDS_MSI_NOT_FOUND= 无法定位产品安装程序’%s。

安装程序现在退出。

IDS_REBOOT_QUERY= 安装完成。

现在重启吗?IDS_SETUP_SUCCEEDED= 安装成功。

IDS_INVALID_LANGID_CAPTION= 无效的语言包代码IDS_FX_NOT_FOUND= 无法定位.NET framework exe 文件’%s。

安装程序现在退出。

IDS_INVALID_LANGID_MESSAGE= 语言包代码%s 无效。

跳过…IDS_LANGPACK_NOT_FOUND= 无法定位语言包%s 。

安装程序现在退出。

IDS_MDAC_NOT_FOUND= 无法定位MDAC exe 文件’%s。

安装程序现在退出。

IDS_FILE_NOT_FOUND= 无法定位’%1安装程序现在退出。

Settings.ini 文件内容如下:[Bootstrap]MsiPath=ItemSoft.msi —.msi 安装文件ProductName=中国亿万电器成套报价系统-安装产品名称MdacVersion=2.71BootstrapFx=trueFxInstallerPath=LanguageID=2052BootstrapLangPack=trueLangPackInstallerPath=BootstrapMdac=trueMdacInstallerPath=这种方法能够很简单的将.Net Framwork 与你的应用程序一起打包到安装程序中,并且自动检测客机上的是否安装过.Net Framework, 然后运行安装。

相信大家一定能够喜欢这个插件。

.Net 程序打包安装与卸载制作——怎样在打包程序中自动安装SQL Server 数据库(三)?怎样在打包程序中自动安装SQL Server 数据库?1、创建安装项目“ Setup1 ”安装项目在“文件”菜单上指向“添加项目”,然后选择“新建项目”。

在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。

在“名称” 框中键入“ setup1 ”。

单击“确定”关闭对话框。

项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。

在“属性”窗口中,选择ProductName 属性,并键入”亿万电器成套报价系统”。

2、在安装项目中创建安装程序类( install.cs )。

添加创建数据库( InstallDatabase.txt )、删除数据库 ( DropDatabase.txt )、初始化数据基本数据(InitializeData.txt) 脚本文件,将属性“生成操作”设为“嵌入的资源”。

代码如下:using System;using System.Collections;using ponentModel;using System.Configuration.Install;using System.Data;using System.Data.SqlClient;using System.IO;using System.Reflection;using System.Text.RegularExpressions;using System.Windows.Forms;using System.Text;using Microsoft.Win32;namespace install{////// Installer 的摘要说明。

///[RunInstaller(true)]public class Installer : System.Configuration.Install.Installer { ////// 必需的设计器变量。

///string conStr= ” packet size=4096;integrated security=SSPI; ”+“data source=/ ” (local)/ ” ;persist security info=False; ”+“ initial catalog=master;connect timeout=300 ;RijndaelCryptography rijndael = newRijndaelCryptography();private ponentModel.Container components =null;public Installer(){// 该调用是设计器所必需的。

InitializeComponent();// TODO: 在InitializeComponent 调用后添加任何初始化}////// 清理所有正在使用的资源。

///protected override void Dispose( bool disposing ){if( disposing ){if(components != null){components.Dispose();}} base.Dispose( disposing );}#region 组件设计器生成的代码////// 设计器支持所需的方法- 不要使用代码编辑器修改/// 此方法的内容。

///private void InitializeComponent(){components = new ponentModel.Container(); }#endregion#region 重载自定义安装方法protected override void OnBeforeInstall(IDictionary savedState){ base.OnBeforeInstall (savedState);}public override void Install(IDictionary stateSaver) {base.Install (stateSaver); string databaseServer =Context.Parameters[ ” server ” ].ToString();string userName = Context.Parameters[ ” user ” ].ToString();string userPass= Context.Parameters[ ”pwd” ].ToString();string targetdir =this.Context.Param eters[ ” targetdir ” ].ToString();conStr =GetLogin(databaseServer,userName,userPass, ” master ” );SqlConnection sqlCon = new SqlConnection();try{sqlCon.ConnectionString = conStr;sqlCon.Open();rijndael.GenKey();rijndael.Encrypt(conStr);stateSaver.Add( ”key ” ,rijndael.Key);stateSaver.Add( ”IV ” ,rijndael.IV);stateSaver.Add( ” conStr ” ,rijndael.Encrypted);ExecuteSql(sqlCon, ” InstallDatabase.txt ”);ExecuteSql(sqlCon, ” InitializeData.txt ”);if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close();}catch(SqlException){MessageBox.Show( ”安装失败!/n 数据库配置有误,请正确配置信息! ”, ”错误” ,MessageBoxButtons.OK,MessageBoxIcon.Error);if(sqlCon.State!=ConnectionState.Closed) sqlCon.Close();this.Rollback(stateSaver);}}protected override void OnAfterInstall(IDictionarysavedState){base.OnAfterInstall(savedState);}public override void Rollback(IDictionary savedState) {base.Rollback (savedState);}public override void Uninstall(IDictionary savedState){base.Uninstall (savedState);if(savedState.Contains( ” conStr ”)){string targetdir =this.Context.Parameters[ ” targetdir ” ].ToString();RijndaelCryptography rijndael = new RijndaelCryptography();rijndael.Key = (byte[])savedState[ ”key ”]; rijndael.IV = (byte[])savedState[”IV ”];conStr ” ]); conStr = rijndael.Decrypt((byte[])savedState[ ”SqlConnection sqlCon = new SqlConnection(conStr); ExecuteDrop(sqlCon); }}#endregion#region 数据操作方法//从资源文件获取中数据执行脚本private static string GetScript(string name){Assembly asm = Assembly.GetExecutingAssembly();Stream str = asm.GetManifestResourceStream(asm.GetName().Name+ “ . ” + name);StreamReader reader = newStreamReader(str,System.Text.Encoding.Default);System.Text.StringBuilder output = new System.Text.StringBuilder();t■I ■“ ”string line = “”;while((line = reader.ReadLine())!=null){output.App end(line + “ /n ”);}return output.ToString();}//获取数据库登录连接字符串private static string GetLogin(string databaseServer,string userName,string userPass,string database) {return “ server= ” + databaseServer +“ ;database= ” +database+ ” ;User ID= ” + userName +“ ;Password= ” + userPass + ” ;connect timeout=300;}//执行数据库脚本方法private static void ExecuteSql(SqlConnection sqlCon,string sqlfile){string[] SqlLine;Regex regex = newRegex( ” A GO? ,RegexOptions」gnoreCase |RegexOptions.Multiline);string txtSQL = GetScript(sqlfile);SqlLine = regex.Split(txtSQL);if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close(); sqlCon.Open(); SqlCommand cmd = sqlCon.CreateCommand(); cmd.Connection = sqlCon; foreach(string line in SqlLine){if(line.Length&gt;0){mandText = line;mandType = CommandType.Text;try{ cmd.ExecuteNonQuery();}catch(SqlException ex){//rollbackstring ss = ex.Message;ExecuteDrop(sqlCon);break;}}}}//删除数据库private static void ExecuteDrop(SqlConnection sqlCon){ if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close(); sqlCon.Open(); SqlCommand cmd = sqlCon.CreateCommand(); cmd.Connection = sqlCon; mandText = GetScript( ” DropDatabase.txt ” );mandType = CommandType.Text;cmd.ExecuteNonQuery();sqlCon.Close();}#endregion}单击“生成”菜单下“生成解决方案”,生成nstall.dll安装类文件。

相关文档
最新文档