c#,winform安装和部署

1) 创建windows 窗体应用程序 test(建议使用.NET Framework 2.0)。
2) 任意编辑应用程序,生成解决方案。
3) 右击解决方案—添加—新建项目—其他项目类型—安装和部署—安装项目 testSetup(建议使用.NET Framework 2.0)。
4) 右击testSetup—视图—文件系统。
5) 右击应用程序文件夹—添加—文件  将test项目下Debug(Release)中的文件全部选中添加。
6) 在用户的“程序”菜单中创建快捷方式
1. 右击用户的“程序”菜单—创建文件夹test (说明:文件夹test将在开始菜单的所有程序中显示)。
2. 右击应用程序文件夹下的test.exe——创建快捷方式获取的名字为“test.exe 的快捷方式”的快捷方式(当然你也可以修改这个快捷方式

的名字,这里我就不做任何修改了),将“test.exe 的快捷方式”剪切到用户的“程序”菜单下的test文件下。
7) 在用户桌面创建快捷方式。
1. 右击应用程序文件夹下的test.exe——创建快捷方式获取的名字为“test.exe 的快捷方式”的快捷方式(当然你也可以修改这个快捷方式

的名字,这里我就不做任何修改了),将“test.exe 的快捷方式”剪切到用户桌面下。
8) 添加卸载程序。
1. 右击应用程序文件夹—添加—文件(c:/WINDOWS/system32/msiexec.exe)
2. 右击msiexec.exe 创建快捷方式 "msiexec.exe 的快捷方式"(当然你也可以修改这个快捷方式的名字,这里我就不做任何修改了),

将"msiexec.exe 的快捷方式"剪切到用户的“程序”菜单下的test文件下。
3. 修改testSetup兼容版本,单击testSetup—检测到的依赖项—Microsoft .NET Framework,右击左边窗口启动条件下的.NET Framework—

属性—将Version 改为2.0.50727
4. 绑定安装程序和卸载快捷方式,单击testSetup 复制testSetup的ProductCode的属性如{18162EAE-006B-4CDC-858F-25A3C772834B},右击

setSetup—视图—文件系统,然后右击用户的“程序”菜单—msiexec.exe 的快捷方式—属性窗口的 Arguments输入 /x {18162EAE-006B-

4CDC-858F-25A3C772834B}
5. 生成testSetup.
9) 运行testSetup—Debug(Release)下的setup.exe(testSetup.msi)
10) 运行程序。
11) 卸载程序—单击开始—所有程序—"msiexec.exe 的快捷方式"
12) 结束

附言:将安装的路径添加到注册表中
1.创建类库“CSInstall”
2.添加安装程序类“CSInstaller.cs”代码如下

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using Microsoft.Win32;

namespace CSInstall
{
    [RunInstaller(true)]
    public partial class CSInstaller : Installer
    {
        public CSInstaller()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 安装时触发
        /// </summary>
        /// <param name="stateSaver"></param>
        public override void Install(IDictionary stateSaver)
        {
            string path = this.Context.Parameters["targetdir"].ToString();//安装文件路径
            WriteRegedit(path);
        }
        /// <summary>
        /// 移除时触发
        /// </summary>
        /// <param name="savedState"></param>
        public override void Uninstall(IDictionary savedState)
        {
            RemoveRegedit();
        }
        /// <summary>
        /// 移除注册表
        /// </summary>
        private void RemoveRegedit()
        {
            try
            {
                RegistryKey zhcao = Registry.LocalMachine.OpenSubKey(@"software\zhcao",true);
                if (zhcao != null)
                {
                    RegistryKey software = Registry.LocalMachine.OpenSubKey("software", true);
                    software.DeleteSubKey("zhcao");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 写注册表
        /// </summary>
        /// <param name="path"></param>
        private void WriteRegedit(string path)
        {
            try
            {
                RegistryKey zhcao = Registry.LocalMachine.OpenSubKey(@"software\zhcao", true);
                if (zhcao == null)
                {
                    RegistryKey software = Registry.LocalMachine.OpenSubKey("software", true);
                    zhcao = software.CreateSubKey("zhcao");
                }
                zhcao.SetValue("path", path);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

3.右击“安装和部署”项目—视图—文件系统,右击应用程序文件夹—添加—文件—CSInstall.dll(类库“CSInstall”生成的)。
4.在安装时写入注册表。右击“安装和部署”项目—视图—自定义操作,右击安装—添加自定义操作—应用程序文件夹—CSInstall.dll,右击CSInstall.dll—属性窗口,在CustomActionData的属性中添加 /targetdir="[TARGETDIR]\" 这就是安装的时候往注册表中写入的安装路径。
5.在卸载是移除注册表。右击“安装和部署”项目—试图—自定义操作,右击卸载—添加自定义操作—应用程序文件夹—CSInstall.dll
这样就完成了。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值