Проблемы с использованием installclass в веб-настройке для веб-сайта - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь создать веб-настройку для своего веб-сайта, и я хочу использовать класс установщика для выполнения некоторых пользовательских задач.Я использую VS 2010, а веб-сайт и установщик - .NET 3.5.

Я добавил ссылку на вывод проекта класса установщика в разделе Install в разделе Custom Actions:
Custom Actions

Я также установил /targetdir="[TARGETDIR]/" на CustomActionData для этого действия.

Проект InstallScript - это стандартная библиотека классов (dll).
Существует открытый класскоторый наследует от Installer класса.Он переопределяет метод Install, как я видел в нескольких онлайн-примерах:

using System.Collections;
using System.Windows.Forms;

namespace InstallScript
{
  public class MyWebInstaller : System.Configuration.Install.Installer
  {
    public override void Install(IDictionary stateSaver)
    {
      base.Install(stateSaver);
      var targetDir = Context.Parameters["targetdir"];
      if(targetDir==null) targetDir = "No TARGETDIR!";
      MessageBox.Show("TARGETDIR:\t" + targetDir);
    }
  }
}

Я бы подумал, что здесь должно быть показано окно сообщения во время установки, но кажется, что оно никогда не вызывается,Ошибка не отображается.Установка просто проходит, как будто этот код никогда не вызывался.

Кто-нибудь знает, что не так?

1 Ответ

0 голосов
/ 22 февраля 2012

ОК, я выяснил, чего не хватало.

Вам нужно указать класс с атрибутом класса RunInstaller(true), чтобы установка могла выполнить и фактически запустить код.

Таким образом, класс должен быть объявлен так:

[System.ComponentModel.RunInstaller(true)]   
public class MyWebInstaller : System.Configuration.Install.Installer   
{
  ...
...