.NET打包安装MSDE以及安装和卸载

1、创建安装项目“Setup1”安装项目
在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入

“setup1”。
单击“确定”关闭对话框。
项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。
在“属性”窗口中,选择 ProductName 属性,并键入”遥测水位数据接收软件”。

  选择setup1右键添加项目输出将你的应用程序以及相应的类库,数据库文件添加到安装程序中, 打开文件系统界面, 找到应用程序文件夹, 右键点击

你的应用程序,创建两个快捷方式,
  右键属性指定对应的图标, 分别拖到用户的"程序"菜单和用户桌面上. 完成初步安装.

2. 添加卸载程序
  在打包项目中添加文件msiexec.exe(一般在c:\windows\system32(系统目录中)找到)。

在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninst”.

更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。

3. 打包MSDE SP3

选择“文件系统编辑器”,在“视图“菜单上指向“添加”,然后选择“合并模块…”(Merge Moudle),在添加模块中,找到MSDE sp3安装文件所在

目录,将MSM,MSM\1033,MSM\2052下的所有文件,添加进来。

在安装项目Setup1的属性(Properties)中的“Search Path”,添加MSM,MSM\1033,MSM\2052目录。

单击“生成菜单下的“生成解决方案”,编译Setup1安装项目工程。


4. 自动附加数据库
解决方案中新添加项目,项目类型为windows类库, 然后添加新建项->安装程序类, 打开Installer1.cs切换到代码编辑视图, 添加以下代码

 

Code
 1        private void CreateDataBase()
 2        {
 3            // 启动SQL服务, 预防装完之后服务未启动
 4            Process p = new Process();
 5            p.StartInfo.FileName = "cmd.exe";
 6
 7            p.StartInfo.UseShellExecute = false;
 8            p.StartInfo.RedirectStandardInput = true;
 9            p.StartInfo.RedirectStandardOutput = true;
10            p.StartInfo.RedirectStandardError = true;
11            p.StartInfo.CreateNoWindow = true;
12
13            p.Start();
14            p.StandardInput.WriteLine("net start MSSQL$HW1000");
15            p.StandardInput.WriteLine("exit");
16            p.StandardOutput.ReadToEnd();
17
18            string strSql = string.Format("server={0}; user id={1}; password={2}; Database=master", "(local)\\hw1000", "sa",

"sa");
19            string strMdf = this.Context.Parameters["targetdir"] + "database\\ShanDongShuiQing.mdf";
20            string strLdf = this.Context.Parameters["targetdir"] + "database\\ShanDongShuiQing_log.ldf";
21            //LogWriter.LogEvent("MDF路径:" + strMdf);                      
22            string str;
23            SqlConnection myConn = new SqlConnection(strSql);
24            str = "EXEC sp_attach_db @dbname = N'ShanDongShuiQing', @filename1 = N'" + strMdf + "',@filename2=N'" + strLdf + "'";
25            SqlCommand myCommand = new SqlCommand(str, myConn);
26            myConn.Open();
27            myCommand.ExecuteNonQuery();
28            myConn.Close();
29        }
30
31        protected override void OnAfterInstall(System.Collections.IDictionary savedState)
32        {
33            base.OnAfterInstall(savedState);
34            try
35            {
36                CreateDataBase();
37            }
38            catch (Exception ex)
39            {
40                throw new Exception(ex.ToString());
41            }
42        }
编译InstallDB项目.

 

5. 建自定义操作
在解决方案资源管理器中选择安装项目“Setup1”项目,在“视图”菜单上指向“编辑器”,然后选择“自定义操作”。

在“自定义操作编辑器”中选择“安装”节点。单击右键“添加自定义操作”,在选择项目中的项中选择“应用程序文件夹”,选择“主输出来自

InstallDB(活动)”。

在“属性窗口”中选择“CustomActionData”属性并键入“/targetdir="[TARGETDIR]\"”。

附:/targetdir="[TARGETDIR]\"是安装后的目标路径,为了在InstallDB类中获得安装后的路径,我们设置此参数。

生成安装程序

 

6. 修改安装程序
用Orca MSI安装文件修改器打开生成的安装包(Setup1.msi)文件,在左列的表栏中

选择“InstallExecuteSequence”表,修改下面的属性值:

GetSqlStates.XXXXXX 103改成421

RemoveExistingProducts值改成1800

InstallInitialize值改成1799

在InstallUISequence

选择“InstallUISequence”表,修改下面的值:

GetSqlStates.XXXXXX 103改成421

选择“Property”表,添加以下三个属性:

SqlInstanceName:MSDEDH实例服务名

SqlSecurityMode:SQL(不加这行确实也行,就是没办法用SQL模式登录)

SqlSaPwd:sa的密码

  
到此全部完成, 安装软件后测试通过, 卸载通过.

 

转载:http://www.cnblogs.com/andyran/archive/2008/11/28/1343061.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值