自定义安装

类别:.NET开发 点击:0 评论:0 推荐:

需求:

现在我想要安装完成一个简单的自定义操作:

1 在安装过程中提供两个文本框,用于我输入数据库服务器名和要打开的数据库名。

2 将我的输入的数据写入一个文本文件,保存在 c:\log.txt。



实现:

1 新建一个类库项目,在该项目下添加一个类:
using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;

[RunInstaller(true)]

public class MyInstaller : Installer
{
    public override void Install(IDictionary savedState)
    {
        base.Install(savedState);
        try

        {

            StreamWriter writer = new StreamWriter("c:\\log.txt");

            writer.WriteLine("whern i kasdjf" + System.DateTime.Now.ToString());

            writer.WriteLine(this.Context.Parameters["Server"] + this.Context.Parameters["Database"]);

            writer.Close();

        }

        catch (Exception e)

        {

            throw new InstallException(e.Message);

        }

    }

 

    /// <summary>

    /// Commit is called when install goes through successfully.

    /// </summary>

    /// <param name="savedState"></param>

    public override void Commit(IDictionary savedState)

    {

        base.Commit(savedState);

    }

 

    /// <summary>

    /// Rollback is called if there is any error during Install.

    /// </summary>

    /// <param name="savedState"></param>

    public override void Rollback(IDictionary savedState)

    {

        base.Rollback(savedState);

    }

 

    public override void Uninstall(IDictionary savedState)

    {

        base.Uninstall(savedState);

    }

}




2 将类库编译为 MyInstall.dll。



在你安装项目中:

1 进入“用户界面”视图。

a 在启动中添加一个 “文本框C”。

b 将文本框上移到“安装文件夹”之上。

c 设置文本框属性:

Edit3Visible = False

Edit4Visible = False

Edit1Label = “数据库服务器”

Edit2Label = “数据库”



2 进入“自定义操作”视图。

a 在 "安装目录" 下添加程序集 MyInstall.dll。

b 设置 MyInstall.dll 属性:

InstallerClass = True

CustonActionData = /Server=[EDITC1] /Database=[EDITC2]



到这一步就 Ok 了。



参考文档:

Installer Applications and Components (英文)。

安裝時將應用程式重新導向其他的目標 XML Web 服務(繁体)

本文地址:http://com.8s8s.com/it/it45723.htm