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

下载本文档

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

文档简介

1、VS2010打包 安装部署这里简单介绍如何在VS2010开发环境下制作安装项目,其中包括如何设置开机启动、删除注册表及安装后自动运行,加上卸载功能。1、  创建安装项目    打开VS2010,点击菜单上的“文件”>>“新建”>>“项目”,弹出如下对话框。     如上图所示,在“其他项目类型”中选择“安装项目”,根据自己的需求命名,这里命名为“MySetup”,选择保存路径。这样就创建了一个安装项目。2、 在安装项目中添加其他应用程序项目点击菜单上的

2、“文件”>>“添加”>>“现有项目”,弹出如下对话框。    这里选择之前已经做好的一个WPF应用程序项目3、 将可执行文件(.exe)、类库(.dll文件)及所需图片加入安装项目中右击“MySetup”>>“视图”>>“文件系统”,主窗口显示文件系统界面,如下图    右击“应用程序文件夹”>>“添加”>>“项目输出”,弹出如下对话框。    在“项目”选项中选择“DataServiceHos

3、t”,按住“Ctrl”键,选中“主输出”,单击“确定”。再右击“应用程序文件夹”>>“添加”>>“文件夹”,命名为“Images”,在“Images”中放入应用程序需要的图片,右击“Images”>>“添加”>>“文件”,在弹出的对话框中添加所需的图片。4、 创建快捷方式在“应用程序文件夹”中右击“主输出来自DataServiceHost(活动)”,如下图。   点击“创建 主输出来自DataServiceHost(活动)的快捷方式”,将快捷方式重命名为“我的WPF应用程序”,这里可以根据需要命名。在“文件

4、系统”中的“用户的“程序”菜单”添加文件夹“我的WPF应用程序”,这里可以根据需求命名,将之前“我的WPF应用程序”快捷方式剪切到该文件夹中。同理可以在“文件系统”中的“用户桌面”中创建快捷方式。(在用户桌面中不要添加文件夹)5、 实现安装程序卸载这里直接引用了Windows系统中自带的一个卸载程序,该卸载程序在“C:/Windows/System32”文件夹中,名称为“msiexec.exe”,右击“应用程序文件夹”>>“添加”>>“文件”,将“msiexec.exe”加入“应用程序文件夹”中    同步骤4,创建卸载

5、程序的快捷方式,这里建议不要在“用户桌面”中创建卸载程序,难看!重点,“卸载快捷方式”的属性“Argument”值设为“/x710AD120-3D4C-430D-A9FA-A1D504465CC8”,其中“710AD120-3D4C-430D-A9FA-A1D504465CC8”为产品编号(ProductCode),可在“MySetup”属性框口中找到。左击“MySetup”(不是右击),再点击属性窗口,如下图。“ProductName”属性值就是上述的“710AD120-3D4C-430D-A9FA-A1D504465CC8”。6、 改变各快捷方式的图标这里只拿“我的WPF应用程序

6、快捷方式”为例,其他同理。在“应用程序文件夹”中的“Images”中添加需要的“.ico图标”,这里添加一个“mywpf.ico”图标。如下图。右击“我的WPF应用程序快捷方式”>>“属性窗口”,属性窗口如下图。设置“Icon”属性,选择“Images”中的“mywpf.ico”图标。7、 实现开机启动右击“MySetup”>>“视图”>>“注册表”,主窗口显示如下图。   在“HKEY_LOCAL-MACHINE”文件夹下新建键“Software”>>“Microsoft”>>“Windows

7、”>>“CurrentVersion”>>“Run”,在“Run”文件夹新建字符串值,命名为“DataServiceHost.exe”,可根据需求命名,右击“DataServiceHost”>>“属性窗口”,其中“Value”属性设为“TARGETDIR DataServiceHost.exe”。如此,便实现了开机启动。8、 实现安装后自动运行及删除注册表实现这两个功能就需要一些技巧,左键点击“解决方案”选中,然后点击菜单上的“文件”>>“添加”>>“新建项目”,如下图。选择“类库”项目类型,点击确定即可在解决方案中添加一个

8、类库项目。右键点击该类库项目>>“添加”>>“新建项”,如下图。选择“安装程序类”,命名为“Installer”。在“Installer.cs”代码中重写如下方法:/ <summary>        / 函数入口主函数        / </summary>        public static void

9、 Main()                        public Installer1()                    Initialize

10、Component();                / <summary>        / 重写安装完成后函数        / 实现安装完成后自动启动已安装的程序        /

11、 </summary>        / <param name="savedState"></param>        protected override void OnAfterInstall(IDictionary savedState)           &#

12、160;        base.OnAfterInstall(savedState);                / <summary>        / 重写安装过程方法       

13、60;/        / </summary>        / <param name="stateSaver"></param>        public override void Install(IDictionary stateSaver)    &

14、#160;               base.Install(stateSaver);                protected override void OnBeforeInstall(IDictionary savedState)   

15、60;                base.OnBeforeInstall(savedState);                / <summary>        / 重写卸载方

16、法        / </summary>        / <param name="savedState"></param>        public override void Uninstall(IDictionary savedState)    &#

17、160;               base.Uninstall(savedState);                / <summary>        / 重写卸载完成后函数 &

18、#160;      / 实现安装完成后自动删除注册表        / </summary>        / <param name="savedState"></param>        protected override void

19、OnAfterUninstall(IDictionary savedState)                    base.OnAfterUninstall(savedState);                / <summ

20、ary>        / 重写回滚方法        / </summary>        / <param name="savedState"></param>        public override vo

21、id Rollback(IDictionary savedState)                    base.Rollback(savedState);        这里对protected override void OnAfterInstall(IDictionary savedState)和prote

22、cted override void OnAfterUninstall(IDictionary savedState)进行如下自定义操作(当然也可以对其它方法进行自定义以实现其它功能)。protected override void OnAfterInstall(IDictionary savedState)                    base.OnAfterInstall(saved

23、State);            Assembly asm = Assembly.GetExecutingAssembly();            string path = asm.Location.Remove(asm.Location.LastIndexOf("") + ""  

24、60;         try                            System.Diagnostics.Process.Start(path + "DataServiceHost.exe")

25、;                        catch (Exception my)                      

26、60;     throw new Exception(my.Message);                    protected override void OnAfterUninstall(IDictionary savedState)        

27、60;           base.OnAfterUninstall(savedState);            RegistryKey hklm = Registry.LocalMachine;            RegistryKey

28、run = hklm.CreateSubKey("SoftwareMicrosoftWindowsCurrentVersionRun");            try                        &#

29、160;   run.DeleteValue("DataServiceHost.exe");                run.Close();                hklm.Close();  

30、                      catch (Exception my)                        

31、0;   throw new Exception(my.Message);                    自定义操作完成后,一定要将该类库程序生成,这样就可以得到“.dll”文件。生成成功后,将该类库程序集添加到安装项目中。右击“MySetup”>>“视图”>>“文件系统”,主窗口如下图。右键点击“应用程序文件夹”>>“添加

32、”>>“项目输出”,如下图所示,选择该类库项目为“主输出”,点击确定。然后,将该类库程序集添加到自定义操作中,右击“MySetup”>>“视图”>>“自定义操作”,主窗口如下图。右击“安装”>>“添加自定义操作”,弹出如下对话框。点击打开“应用程序文件夹”,选择ClassLibrary2,点击右侧“添加输出”。这样便实现了安装后自动运行和卸载后删除注册表的功能。9、自定义安装。在安装过程中实现对配置文件(config.dat)的复制,并在安装过程中允许用户输入串口配置参数,实现对配置文件的修改。右击“MySetup”>>“视图”>

33、;>“用户界面”,主窗口如下图。右键单击“启动”>>“添加对话框”>>“文本框(A)”,点击确定。左键点击上图中的“文本框(A)”,在右侧属性窗口中设置要显示的提示符与文本框名称等信息,如下图所示,本示例中只配置和显示了三个文本框(属性名分别为COMM、COML和COMR)。实现效果如下图所示。然后,在右击“MySetup”>>“视图”>>“自定义操作”,如下图单击步骤8中添加的类库,在其右侧显示的属性“CustomActionData”中写入“/comm=COMM /coml=COML /comr=COMR /targetdir=&quo

34、t;TARGETDIR"”,如此便可以自定义类库与安装程序之前的变量传递。其中targetdir传递的是程序安装目录。最后,在步骤8中installer.cs中的OnAfterInstall函数中,增加具体的操作代码。如下。public const string FILENAME = "C:config.dat"System.Runtime.InteropServices.DllImport("Kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Unicode)publ

35、ic static extern bool WritePrivateProfileString(string sAppName, string sKeyName, string sValue, string sFileName);protected override void OnAfterInstall(IDictionary savedState)string comm = "10" string coml = "11" string comr = "12" string currentDir = "" if (!Strin

温馨提示

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

评论

0/150

提交评论