using System.Collections
using System.Collections.Generic
using System.ComponentModel
using System.Configuration.Install
using System.Linq
using System.Windows.Forms
using Microsoft.Win32
namespace SetEnvironment{[RunInstaller(true)]
publicpartialclass SetEnvironmentInstaller : Installer{public SetEnvironmentInstaller(){InitializeComponent()}publicoverridevoid Install(System.Collections.IDictionary stateSaver){string oraclePath = this.Context.Parameters["targetdir"].ToString() + "OracleClient"
base.Install(stateSaver)
SetEnvironment(oraclePath,oraclePath)}privatevoid SetEnvironment(string path,string TNS_ADMIN){try {using (RegistryKey environment = Registry.LocalMachine.OpenSubKey(@"SYSTEM\ControlSet001\Control\Session Manager\Environment", true)){String pathValue = path +""+ environment.GetValue("Path").ToString()
environment.SetValue("Path", pathValue)
string search=environment.GetValue("TNS_ADMIN", string.Empty).ToString()
environment.SetValue("TNS_ADMIN", value)}}MessageBox.Show("配置环境变量成功")}catch (Exception ex){MessageBox.Show(ex.Message)}}}}完了之后生成dll组件,回到安装项目,再次在应用程序文件夹下添加项目输出,跟之前步骤一样,不过这次选择刚才的用来配置环境变量的类库项目,类型还是主输出然后右击安装项目setup->视图->自定义 *** 作,将setenvironment输出添加到自定义 *** 作那,具体 *** 作是右击自定义 *** 作的安装->添加自定义 *** 作,进入应用程序文件夹下选择项目中的项目,选择setenvironment的项目,点击确定完成添加,右击“主输出来自SetEnvironment(活动)”,选择属性窗口,在customActionData项添加值/targetdir="[TARGETDIR]\"回到上面的代码处,添加这个参数是为了在上面的代码运行时可以获得程序的安装目录,修改注册表的那些代码读者们可以自己琢磨一下,打开注册表看看就知道了,至此,项目打包基本结束,数据库的打包也完成了,不过安装完后需要重启电脑环境变量的修改才能生效,程序才能连上数据库五 顺便把如何添加卸载功能也写上吧:在应用程序文件夹下把msiexec.exe添加进来,右键添加文件,在C:\Windows\System32目录下找到msiexec.exe添加即可,创建msiexec.exe的快捷方式,把快捷方式剪切到别的地方,用户桌面或者用户程序菜单,不剪切也行,查看setup的属性窗口,找到product在msiexec.exe的快捷方式的属性窗口中Arguments添加上productCode 格式是/x+空格+productCode六 生成setUp项目,打包结束,这也是个很基础的过程,还有很多细节部分大家就从别处查查资料吧,貌似微软的文档把这个说的很清楚,有时间再研究研究!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)