演练:创建自定义操作

下面的演练演示如何创建一个 DLL 自定义操作,以便在安装结束时将用户直接连接到某个网页。 可使用自定义操作在完成安装后运行代码。

提示

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

创建自定义操作

  1. 在**“文件”菜单上,单击“新建项目”**。

  2. 在**“新建项目”对话框中,选择“Windows”,再单击“类库”。 在“名称”**框中键入“OpenWeb”。

    该项目随即添加到**“解决方案资源管理器”**中。

  3. 在**“项目”菜单上,单击“添加类”,然后在“添加新项”对话框中单击“安装程序类”。 接受默认名称 Installer1,然后单击“添加”**。

  4. 通过在设计图面上单击**“单击此处切换到代码视图”(或右击设计图面,再单击“查看代码”**),切换到代码视图。

  5. 在“代码编辑器”中,将以下代码(可打开 Web 浏览器)添加到 Installer1 代码文件中的构造函数下。

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)>
    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
    End Sub
    
    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)>
    Public Overrides Sub Commit(
      ByVal savedState As System.Collections.IDictionary)
    
        MyBase.Commit(savedState)
        System.Diagnostics.Process.Start("https://www.microsoft.com")
    End Sub
    
    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)>
    Public Overrides Sub Rollback(ByVal savedState As System.Collections.IDictionary)
        MyBase.Rollback(savedState)
    End Sub
    
    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)>
    Public Overrides Sub Uninstall(ByVal savedState As System.Collections.IDictionary)
        MyBase.Uninstall(savedState)
    End Sub
    
    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
    }
    
    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
        System.Diagnostics.Process.Start("https://www.microsoft.com");
    }
    
    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Rollback(IDictionary savedState)
    {
        base.Rollback(savedState);
    }
    
    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
    }
    

    提示

    如果您键入 Public Overrides,然后键入空格,IntelliSense 会提供一个方法和属性列表;您可以从该列表中选择“Commit”并获得完整的声明。 对 Install、Rollback 和 Uninstall 方法重复上述操作。

  6. 在**“解决方案资源管理器”中,右击 Class1 代码文件,再单击“删除”**(因为它是不必要的)。

添加部署项目

  1. 在**“文件”菜单上指向“添加”,然后单击“新建项目”**。

  2. 在**“添加新项目”对话框中,展开“其他项目类型”节点,展开“安装和部署项目”,单击“Visual Studio Installer”,然后再单击“安装项目”。 在“名称”**框中键入“自定义操作安装程序”。

    项目添加到**“解决方案资源管理器”中,并显示“文件系统编辑器”**。

  3. 在**“文件系统编辑器”中,在左窗格中选择“应用程序文件夹”。 在“操作”菜单上指向“添加”,然后单击“项目输出”**。

  4. 在**“添加项目输出组”对话框中,OpenWeb 将显示在“项目”列表中。 选择“主输出”**。

    **“OpenWeb 的主输出(活动)”显示在“应用程序文件夹”**中。

添加自定义操作

  1. 在**“解决方案资源管理器”中选择“自定义操作安装程序”项目。 在“视图”菜单上指向“编辑器”,然后单击“自定义操作”**。

    此时将会显示**“自定义操作编辑器”**。

  2. 在**“自定义操作编辑器”中选择“提交”节点。 在“操作”菜单上,单击“添加自定义操作”**。

  3. 在**“选择项目中的项”对话框中,双击“应用程序文件夹”。 选择“OpenWeb 的主输出”**。

    **“主输出来自 OpenWeb”显示在“自定义操作编辑器”“提交”**节点的下方。

  4. 在**“属性”窗口中,确保将“InstallerClass”属性设置为“True”**(这是默认值)。

  5. 在**“自定义操作编辑器”中,选择“Install”节点,并将“OpenWeb 的主输出”添加到该节点中(类似于“Commit”**节点)。

  6. 在**“生成”菜单上,单击“生成自定义操作安装程序”**。

在开发计算机上安装

  • 在**“解决方案资源管理器”中选择“自定义操作安装程序”项目。 在“项目”菜单上,单击“安装”**。

    这将在开发计算机上运行安装程序并安装“自定义操作安装程序”。 在安装结束时,Internet Explorer 应当启动并打开 Microsoft.com 网站。

    提示

    您必须在计算机上拥有安装权限才能运行该安装程序。

部署到其他计算机

  1. 在**“解决方案资源管理器”中,右击安装项目,然后单击“在 Windows 资源管理器中打开文件夹”**。

  2. 导航到项目输出,并将 Custom Action Installer.msi、Setup.exe 和该目录下的所有其他文件和子目录复制到另一台计算机上。

    提示

    若要在未联网的计算机上安装,请将文件复制到诸如 CD-ROM 的传统媒体中。

  3. 在目标计算机上双击 Setup.exe 运行安装程序。

    在安装结束时,Internet Explorer 应当启动并打开 Microsoft.com 网站。

    提示

    您必须在计算机上拥有安装权限才能运行该安装程序。

    提示

    如果 .NET Framework 尚未安装在目标计算机上,此部署将会安装它,安装过程可能需要几分钟的时间。

卸载应用程序

  1. 在**“控制面板”中,双击“添加或删除程序”**。

  2. 在**“添加或删除程序”对话框中,选择“自定义操作安装程序”,然后单击“删除”**。

    提示

    若要从开发计算机上卸载,请在“自定义操作安装程序”项目在“解决方案资源管理器”中打开并选定的情况下,单击“项目”菜单上的“卸载”

请参见

其他资源

部署中的自定义操作管理