Помощь в проекте настройки пользовательских действий - PullRequest
0 голосов
/ 06 марта 2011

Пожалуйста, дайте ваши идеи:

В файле решения у меня есть два проекта PROJECTA и SETUP project.После создания установщика PROJECTA установщик «example.msi» содержит PROJECTA.exe (или активный вывод) PROJECTA.

При установке «example.msi» я хочу запустить PROJECTA.exe вфон.

Я попробовал пользовательский элемент управления, а также класс установщика

Если был указан путь к exe (как показано ниже), он работает нормально.но это не предполагаемое поведение, я хочу, чтобы PROJECTA.exe, который находится в example.msi, был скопирован в это место перед установкой, чтобы я мог запускаться оттуда во время установки.

Как этого можно достичь.

C # Синтаксис:

[System.Security.Permissions.SecurityPermission (System.Security.Permissions.SecurityAction.Demand)] * ​​1015 *

    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);
        string s="C:\\xxx\\PROJECTA.exe";
        System.Diagnostics.Process.Start(s);

    }

Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2011

Сделайте PROJECTA.exe установкой MSI, затем добавьте ее в двоичную таблицу.Затем создайте CustomAction типа 50, если это будет сделано в последовательности пользовательского интерфейса, или введите 7, если это будет в последовательности exec.Вы не можете сделать это в .NET CA, поскольку вы можете одновременно запускать только один экземпляр установщика MSI.Запустив вложенный установщик, вы, по сути, используете один и тот же экземпляр механизма установки MSI

. Сказав все это, вложенные установщики могут быть болезненными, и их следует избегать, если вы можете им помочь.

...