zoukankan      html  css  js  c++  java
  • .NET : 自定义安装服务

    今天处理了这样一个事情,我们希望给用户安装的程序满足如下几个要求

    1. 安装步骤尽量简单,最好一步到位,不需要用户按部就班地做那些选择

    2. 安装程序要检测用户是否安装.NET Framework 2.0,如果没有,则自动安装。而且最好不要去微软网站临时下载。

    3. 安装程序最好不能在“添加/删除程序”面板中删除

    为了实现这三个目的,下面来看看我是如何解决的

    1. 要简化安装步骤其实不难,就是在“用户界面编辑器”中将不需要的窗口删除掉即可

    image

    2. 安装检测.NET Framework,这本来也不难,但关键在于如何不去网站下载呢?

    在安装程序的属性对话框中,点击“系统必备”

    image

    image

    注意:这里应该选择“从与我的应用程序相同的位置下载系统必备组件”

    生成之后,就可以看到如下一个特殊文件夹

    image

    把这个与我们的msi打包在一起即可。

    3. 如何让用户无法删除程序呢?我找了一下注册表,发现有些不能删除的程序都有一个特殊的键值NoRemove。于是乎在我们的安装程序中添加了一个注册表值

    image

    安装好之后,注意我们这个安装程序是没有卸载操作的

    image

    4. 最后补充一个,如果我们希望在安装程序运行完成之后,打开我们的一个网站,应该如何实现呢

    其实这个也不难,我们可以在自定义安装类中,添加一句代码

            public override void Commit(IDictionary savedState)
            {
                base.Commit(savedState);
    
                Process.Start("http://www.xizhang.com");
            }
    

    image

  • 相关阅读:
    PhysX3 User Guide 04 Rigid Body Dynamics
    PhysX3 User Guide 05 Scene Queries
    PhysX3 User Guide 01 基础
    error C2061: syntax error : identifier '__RPC__out_xcount_part'
    vim中替换字符串
    Linker Tools Warning LNK4098
    PhysX3 User Guide 03 Joint
    【转】C RunTime Library 暨 深入理解编译选项的含义 04
    不足
    tortoiseSVN Check out正常但Show Log时 Go Offline
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1630707.html
Copyright © 2011-2022 走看看