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.点选“确认删除” 等待删除查看删除效果是否删除。

  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>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安装类文件。

相关文档
最新文档