您的位置:首页 > 其它

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

2011-08-24 23:53 148 查看
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的密码

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

转载:/article/5659240.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐