VS2010程序打包与自定义操作(详细步骤版)_第1页
VS2010程序打包与自定义操作(详细步骤版)_第2页
VS2010程序打包与自定义操作(详细步骤版)_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VS2010打包 安装部署这里简单介绍如何在 VS2010 开发环境下制作安装项目,其中包括如何设置开机启动、删除注册表及安装后自动运行,加上卸载功能。1、 创建安装项目打开 VS2010,点击菜单上的“文件”“新建”“项目”,弹出如下对话框。如上图所示,在“其他项目类型”中选择“安装项目”,根据自己的需求命名,这里命名为点击菜单上的“文件”“添加”“现有项目”,弹出如下对话框。3、将可执行文件3、将可执行文件、类库l 文件)及所需图片加入安装项目中”,主窗口显示文件系统界面,如下图右击“应用程序文件夹”“添加”“项目输出”,弹出如下对话框。在“项目”选项中选择“DataServiceHost

2、”,按住“Ctrl”键,选中“主输出”,单击“确定”。再右击“应用程序文件夹”“添加”“文件夹”,命名为“Images”,在“Images”中放入应用程序需要的图片,右击“Images”“添加”“文件”,在弹出的对话框中添加所需的图片。4、 创建快捷方式在“应用程序文件夹”中右击“主输出来自 DataServiceHost(活动)”,如下图。点击“创建 主输出来自 DataServiceHost(活动)的快捷方式”,将快捷方式重命名为“我的WPF 应用程序”,这里可以根据需要命名。在“程序”“我的 WPF WPF 快捷方式剪切到该文件夹中。5、 实现安装程序卸载这里直接引用了s系统中自带的一个

3、卸载程序5、 实现安装程序卸载这里直接引用了s系统中自带的一个卸载程序”“添加”“msiexec.exe” 加入中同步骤创建卸载程序的快捷方式这里建议不要“用户桌中创建卸载程序难看重 点 , “ 卸 载 快 捷 方 式 ” 的 属 性 “Argument” 值 设 为“/x710AD120-3D4C-430D-A9FA-A1D504465CC8”,其-”为产品编号(e,可在(不是右击,再点击属性窗口,如下图。“ProductName”属性值就是上述的“710AD120-3D4C-430D-A9FA-A1D504465CC8”。6、 改变各快捷方式的图标这里只拿“我的 WPF 应用程序快捷方式”

4、为例,其他同理。在“”“.ico 图标”图标。如下图。右击“我的 WPF 应用程序快捷方式”“属性窗口”,属性窗口如下图。设置“Icon”属性,选择“Images”中的“mywpf.ico”图标。7、 实现开机启动右击“MySetup”“视图”“注册表”,主窗口显示如下图。在 “HKEY_LOCAL-MACHINE” 文 件 夹 下 新 建 键文件夹新建字符串 “DataServiceHost”“”, 其中“TARGETDIR 。如此,便实现了开机启动。8、 实现安装后自动运行及删除注册表“”“添加”“”,如下图。选择“类库”项目类型,点击确定即可在解决方案中添加一个类库项目。右键点击该类库项

5、目“添加”“新建项”,如下图。选择“安装程序类”,命名为“Installer”。在“Installer.cs”代码中重写如下方法:/ / 函数入口主函数/ public static void Main()public Installer1()InitializeComponent();/ / 重写安装完成后函数/ 实现安装完成后自动启动已安装的程序/ / protected override void OnAfterInstall(IDictionary savedState)base.OnAfterInstall(savedState);/ / 重写安装过程方法/ / public ove

6、rride void Install(IDictionary stateSaver)base.Install(stateSaver);protected override void OnBeforeInstall(IDictionary savedState)base.OnBeforeInstall(savedState);/ / 重写卸载方法/ / public override void Uninstall(IDictionary savedState)base.Uninstall(savedState);/ / 重写卸载完成后函数/ 实现安装完成后自动删除注册表/ / protected

7、 override void OnAfterUninstall(IDictionary savedState)base.OnAfterUninstall(savedState);/ / 重写回滚方法/ / public override void Rollback(IDictionary savedState)base.Rollback(savedState);这里对protected override void OnAfterInstall(IDictionary 和protected override void OnAfterUninstall(IDictionary 进行如下自定义操作(

8、当然也可以对其它方法进行自定义以实现其它功能。protected override void OnAfterInstall(IDictionary savedState)base.OnAfterInstall(savedState);Assembly asm = Assembly.GetExecutingAssembly();string path = asm.Location.Remove(asm.Location.LastIndexOf() + ; trySystem.Diagnostics.Process.Start(path + DataServiceHost.exe);catch (

9、Exception my)throw new Exception(my.Message);protected override void OnAfterUninstall(IDictionary savedState)base.OnAfterUninstall(savedState); RegistryKey hklm = Registry.LocalMachine;RegistryKey run = hklm.CreateSubKey(SoftwareMicrosoftWindowsCurrentVersionRun); tryrun.DeleteValue(DataServiceHost.

10、exe); run.Close();hklm.Close();catch (Exception my)throw new Exception(my.Message);自定义操作完成后,一定要将该类库程序生成,这样就可以得到“.dll”文件。生成成功后,将该类库程序集添加到安装项目中。右击“MySetup”“视图”“文件系统”, 主窗口如下图。 然后,将该类库程序集添加到自定义操作中,右击“MySetup”“视图”“自定义操作”,主窗口如下图。右击“安装”“添加自定义操作”,弹出如下对话框。”,选择ClassLibrary2,点击右侧“添加输出9、自定义安装。在安装过程中实现对配置文件(conf

11、ig.dat)的复制,并在安装过程中允许用户输入串口配置参数,实现对配置文件的修改。右击“MySetup”“视图”“用户界面”,主窗口如下图。“文本框,点击确定。左键点击上图中的“文本框示例中只配置和显示了三个文本框(属性名分别为、L 和右击“MySetup”“视图”“用户界面”,主窗口如下图。实现效果如下图所示。然后,在右击“MySetup”“视图”“自定义操作”,如下图8 targetdir 传递的是程序安装目录。最后,在步骤8中installer.cs中的OnAfterInstall函数中,增加具体的操作代码。如下。public const string FILENAME = C:con

12、fig.dat; System.Runtime.InteropServices.DllImport(Kernel32.dll, CharSet = System.Runtime.InteropServices.CharSet.Unicode)public static extern bool WritePrivateProfileString(string sAppName, string sKeyName, string sValue, string sFileName);protected override void OnAfterInstall(IDictionary savedStat

13、e)string comm = 10; string coml = 11; string comr = 12; string currentDir = if (!String.IsNullOrEmpty(this.Context.ParametersCOMM)/LOCALIP comm = this.Context.ParametersCOMM.Trim();/LOCALIPif (!String.IsNullOrEmpty(this.Context.ParametersCOML) coml = this.Context.ParametersCOML.Trim();if (!String.Is

14、NullOrEmpty(this.Context.ParametersCOMR) comr = this.Context.ParametersCOMR.Trim();if (!String.IsNullOrEmpty(this.Context.Parameterstargetdir)currentDir = this.Context.Parameterstargetdir.Trim().ToString();/ currentDir=currentDir.TrimEnd();if (System.IO.File.Exists(currentDir + config.dat)System.IO.File.Copy(currentDir + config.dat, C:config.dat,true);WritePrivateProfileString(ctlset, comm, comm, FILENAME); WriteP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论