OnBeforeInstall方法未在自定义操作中触发

时间:2014-08-20 13:12:10

标签: c# installer custom-action web-project

我有一个安装程序类设置,使用以下方法作为自定义操作运行:

public Installer1()
{
    InitializeComponent();

    #if DEBUG
        Debugger.Launch(); //enables debugging
    #endif
}


protected override void OnBeforeInstall(IDictionary savedState)
{
    base.OnBeforeInstall(savedState);

    ModifyConfig();
}


public override void Install(System.Collections.IDictionary stateSaver)
{
    base.Install(stateSaver);

    if (targetSite == null) throw new InstallException("IIS site name not specified");
    else
    {
        //CreateApplicationPool();
        //CreateWebsite();
        //AssignAppPool();
    }
}

我已经评论了安装方法中发生的大部分内容,因为此时我只是尝试测试ModifyConfig()。当我运行安装程序时,调试程序按预期启动。但是,当我逐行浏览代码时,OnBeforeInstall方法将被完全跳过,并直接跳转到Install方法。继续通过它永远不会击中OnBeforeInstall。

此方法是在Intall之后添加的,但我认为这会在安装之前自动触发。我错过了什么?

2 个答案:

答案 0 :(得分:0)

我注释掉了公共Installer1(){...},然后它触发了OnBeforeInstall方法。所以,它是固定的,但我不知道为什么。如果有人知道为什么我有兴趣知道。

答案 1 :(得分:0)

在安装安装程序之前,必须手动构建安装插件。