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