VS2010中创建安装项目(自定义安装类)
来源:互联网 发布:dhcp server 软件 编辑:程序博客网 时间:2024/05/17 04:11
1、
2、
点击菜单上的“文件”>>“添加”>>“现有项目”,弹出如下对话框。
3、
右击“MySetup”>>“视图”>>“文件系统”,主窗口显示文件系统界面,如下图
再右击“应用程序文件夹”>>“添加”>>“文件夹”,命名为“Images”,在“Images”中放入应用程序需要的图片,右击“Images”>>“添加”>>“文件”,在弹出的对话框中添加所需的图片。
4、
在“应用程序文件夹”中右击“主输出来自DataServiceHost(活动)”,如下图。
在“文件系统”中的“用户的“程序”菜单”添加文件夹“我的WPF应用程序”,这里可以根据需求命名,将之前“我的WPF应用程序快捷方式”剪切到该文件夹中。
同理可以在“文件系统”中的“用户桌面”中创建快捷方式。(在用户桌面中不要添加文件夹)
5、
这里直接引用了Windows系统中自带的一个卸载程序,该卸载程序在“C:/Windows/System32”文件夹中,名称为“msiexec.exe”,右击“应用程序文件夹”>>“添加”>>“文件”,将“msiexec.exe”加入“应用程序文件夹”中
重点,“卸载快捷方式”的属性“Argument”值设为“/x{710AD120-3D4C-430D-A9FA-A1D504465CC8}”,其中“{710AD120-3D4C-430D-A9FA-A1D504465CC8}”可在“MySetup”属性框口中找到。左击“MySetup”(不是右击),再点击属性窗口,如下图。
“ProductName”属性值就是上述的“{710AD120-3D4C-430D-A9FA-A1D504465CC8}”。
6、
这里只拿“我的WPF应用程序快捷方式”为例,其他同理。
在“应用程序文件夹”中的“Images”中添加需要的“.ico图标”,这里添加一个“mywpf.ico”图标。如下图。
右击“我的WPF应用程序快捷方式”>>“属性窗口”,属性窗口如下图。
设置“Icon”属性,选择“Images”中的“mywpf.ico”图标。
7、
右击“MySetup”>>“视图”>>“注册表”,主窗口显示如下图。
8、
实现这两个功能就需要一些技巧,点击菜单上的“文件”>>“添加”>>“新项目”,如下图。
在“HKEY_LOCAL-MACHINE”文件夹下新建键“Software”>>“Microsoft”>>“Windows”>>“CurrentVersion”>>“Run”,在“Run”文件夹新建字符串值,命名为“DataServiceHost.exe”,可根据需求命名,右击“DataServiceHost”>>“属性窗口”,其中“Value”属性设为“[TARGETDIR] DataServiceHost.exe”。如此,便实现了开机启动。
8、
实现这两个功能就需要一些技巧,点击菜单上的“文件”>>“添加”>>“新项目”,如下图。
选择“安装程序类”,命名为“Installer”。
在“Installer.cs”代码中重写如下方法:
/// <summary> /// 函数入口——主函数 /// </summary> public static void Main() { } public Installer1() { InitializeComponent(); } /// <summary> /// 重写安装完成后函数 /// 实现安装完成后自动启动已安装的程序 /// </summary> /// <param name="savedState"></param> protected override void OnAfterInstall(IDictionary savedState) { base.OnAfterInstall(savedState); } /// <summary> /// 重写安装过程方法 /// /// </summary> /// <param name="stateSaver"></param> public override void Install(IDictionary stateSaver) { base.Install(stateSaver); } protected override void OnBeforeInstall(IDictionary savedState) { base.OnBeforeInstall(savedState); } /// <summary> /// 重写卸载方法 /// </summary> /// <param name="savedState"></param> public override void Uninstall(IDictionary savedState) { base.Uninstall(savedState); } /// <summary> /// 重写卸载完成后函数 /// 实现安装完成后自动删除注册表 /// </summary> /// <param name="savedState"></param> protected override void OnAfterUninstall(IDictionary savedState) { base.OnAfterUninstall(savedState); } /// <summary> /// 重写回滚方法 /// </summary> /// <param name="savedState"></param> public override void Rollback(IDictionary savedState) { base.Rollback(savedState); }这里对protected override void OnAfterInstall(IDictionary savedState){}和protected override void OnAfterUninstall(IDictionary savedState){}进行如下自定义操作(当然也可以对其它方法进行自定义以实现其它功能)。protected override void OnAfterInstall(IDictionary savedState) { base.OnAfterInstall(savedState); Assembly asm = Assembly.GetExecutingAssembly(); string path = asm.Location.Remove(asm.Location.LastIndexOf("\\")) + "\\"; try { System.Diagnostics.Process.Start(path + "\\DataServiceHost.exe"); } catch (Exception my) { throw new Exception(my.Message); } }protected override void OnAfterUninstall(IDictionary savedState) { base.OnAfterUninstall(savedState); RegistryKey hklm = Registry.LocalMachine; RegistryKey run = hklm.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run"); try { run.DeleteValue("DataServiceHost.exe"); run.Close(); hklm.Close(); } catch (Exception my) { throw new Exception(my.Message); } }自定义操作完成后,一定要将应用程序生成,这样就可以得到“.dll”文件。生成成功后,就可以将该“.dll”程序集添加到安装项目中。右击“MySetup”>>“视图”>>“自定义操作”,主窗口如下图。
右击“安装”>>“添加自定义操作”,弹出如下对话框。在“应用程序文件夹”中添加程序集,在之前“InstallService应用程序”中debug文件夹中找到“.dll”文件,添加进去。这样便实现了安装后自动运行和卸载后删除注册表的功能。9、 现在可以点击生成右击“MySetup”>>“生成”,成啦!!!在安装项目中Debug文件夹中找到“Setup.msi”,双击就可以安装了….
10 Context.Parameters["targetdir"]为获取安装路径,需要在部署项目中设置
其次,在部署项目的自定义操作中,把安装,提交,回滚,卸载都添加上面项目的主输出
设置主输出的属性CustomActionData值为/targetdir="[TARGETDIR]\",这样Context.Parameters["targetdir"]才能获取到安装路径。
- VS2010中创建安装项目(自定义安装类)
- VS2010中创建安装项目
- VS2010中创建安装项目
- VS2010中安装AjaxControlToolkit
- VS2010安装项目的系统必备中添加.NET 2.0
- VS2010安装项目的系统必备中添加.NET 2.0
- VS2010环境中安装boost_1_48_0
- git 在 vs2010 中 安装
- VS2010中安装WTL (转)
- 在VS2010中安装MSDN
- vs2017 创建安装项目
- VS2010制作网站自定义安装程序
- VS2010制作网站自定义安装程序
- VS2010制作网站自定义安装程序
- VS2010创建SILVERLIGHT项目时提示“你需要安装最新的SILVERLIGHT DEVELOPER运行时”解决方法
- Cocos2D-X入门知识-windows上利用vs2010进行安装、项目创建v2.2.5
- VS2010项目的部署与安装
- VS2010项目的部署与安装
- 数字三角形
- 不言不语,都是好风景
- Baidu地图之浏览器定位
- 浅谈Java垃圾回收
- python 使用CppHeaderParser库 根据c++头文件生成html说明文档表格
- VS2010中创建安装项目(自定义安装类)
- ARM Linux 3.x的设备树(Device Tree)
- fcitx 输入法随开机启动,将debian的环境设置为中文环境
- SQLServer性能优化之SQL语句性能测试
- 对付DNF硬件断点的NtGetContextThread的写法
- SQLServer 数据库镜像+复制切换方案
- linux下使用gcc编译Nate Robin的OpenGL教程
- Java IO 理论笔记
- 集合转数组的toArray()和toArray(T[] a)方法