• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Shiaupo
知识要善于积累,技术更需要总结。
博客园    首页    新随笔    联系   管理    订阅  订阅
用VS制作.NET程序的安装包

从VS2005开始已经集成了windows installer(vs2005以前的版本没有用过),可用vs的这个工具可以轻松将你的程序进行打包发行;

1.首先创建你的应用程序并发布release版本,以MyTest.exe为例;

2.创建一个安装项目工程


3.接下来就是要将你的应用程序添加到安装包中,应用程序文件夹右键-添加-文件 选择你的应用程序MyTest.exe

 

如果你的应用程序是一个windows服务的话则还需要在自定义编辑操作中添加安装操作,安装-添加自定义操作-应用程序文件夹-选择你的服务;  

4. 就这样一个简单的安装包就完成了,是不是很简单。但是在现实应用中还有许多我们需要设置的地方:比如说在桌面创建一个快捷方式、在开始菜单中创建快捷方式,或许还需要设置应用程序安装的文件夹以及应用程序属性等,这些都不在这做一一说明。

5.有些童鞋可能需要问,我这安装程序怎么没有卸载功能,接下来我们就给示例:

创建一个window应用程序取名为uninstall,然后在Form1的Load事件中添加如此代码:

 

private void From_Load(object sender, EventArgs e)
{
    
this.Hide();
    
if (MessageBox.Show("是否删除MyTest", "卸载提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.OK)
    {
        System.Diagnostics.Process.Start(
"msiexec", "/x {741A0689-EB4A-43A0-ADF9-F545476B3AFF} /qr");
    }
    Application.Exit();
}

 

 在这里我们借助了window下的msiexec组件来完成卸载,后面的一串参数是你的安装程序中的ProductCode(去你的安装项目属性中找吧);

 使用控制台项目也可以完成对应的功能,但是有个黑窗口在那闪很不友好 

6. 如果需要在安装完成应用程序的启动则继续:

新建一个类库,添加一个安装程序类instanller,然后重写OnAfterInstall,直接给代码:

/// <summary>
/// 重写安装完成后函数
/// 实现安装完成后自动启动已安装的程序
/// </summary>
/// <param name="savedState"></param>
protected override void OnAfterInstall(IDictionary savedState)
{
    
base.OnAfterInstall(savedState);

    
//启动服务
    try
    {
        ServiceController sc = new ServiceController();
        
sc
.ServiceName = "服务名称";
        sc.Start();
    }
    
catch (System.InvalidOperationException)
    { }

    
//启动应用程序
    Assembly asm = Assembly.GetExecutingAssembly();
    
string path = asm.Location.Remove(asm.Location.LastIndexOf("\\")) + "\\";
    System.Diagnostics.Process.Start(path 
+ "\\MyTest.exe");
}

 

 然后在安装项目工程点击右键选择添加项目输出-主输出,选择你刚才创建的installer组件库,自定义操作编辑器-安装(右键)-添加自定义操作-选择你的installer输出。编译生成,大功告成。

posted on 2011-01-18 17:33  Shiaupo  阅读(2284)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3