Установка и развертывание Visual Studio: создать пакет с дополнительными компонентами? - PullRequest
0 голосов
/ 23 февраля 2009

Скажем, например, мое приложение поддерживает принтеры Epson и принтеры Canon.

Я бы хотел, чтобы во время установки была опция, может быть переключатели или, что лучше, флажки (чтобы можно было выбрать оба варианта), в которых было бы указано «Установить драйверы Epson» и «Установить драйверы Canon».

Затем, в зависимости от выбора пользователя, пакет установки установит либо только драйверы Epson, либо только драйверы Canon, либо оба.

Полагаю, что то, что я хочу, можно описать как наличие нескольких предпосылок, но сделайте их необязательными.

Любые предложения о том, с чего начать?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2009

Похоже, что то, что мне нужно, нельзя сделать из VS Setup и Deployment, так как я пытаюсь запустить MSI из MSI, что недопустимо. Поэтому в качестве обходного пути мне пришлось создать небольшое приложение-оболочку Windows Forms с несколькими флажками и такой функцией

    private void InstallComponent(string filePath)
    {
        System.Diagnostics.Process installerProcess;

        installerProcess = System.Diagnostics.Process.Start(filePath);

        while (installerProcess.HasExited == false)
        {
            //indicate progress to user
            Application.DoEvents();
            System.Threading.Thread.Sleep(250);
        }
    }

и кнопка «Установить», которая будет делать что-то вроде

    private void buttonInstall_Click(object sender, EventArgs e)
    {
        if (checkBoxCanonDrivers.Checked)
        {
            InstallComponent("CanonSetup.exe");
        }

        if (checkBoxEpsonDrivers.Checked)
        { 
            InstallComponent("EpsonSetup.exe");
        }

        // ............

        InstallComponent("MyMainApplicationSetup.exe");
    }

Теперь можно сделать это приложение гибким, например, чтение местоположения установочного файла из файла XML и т. Д., Но это выходит за рамки вопроса ...

0 голосов
/ 21 марта 2009

Я думаю, вы можете сделать это в проекте развертывания Visual Studio, по крайней мере, для простых случаев (я думаю, до 4 флажков, но я могу ошибаться) См. Эту статью MSDN: Флажки Диалоговое окно интерфейса пользователя ; в нем объясняется, как отображать диалоговое окно с флажками во время установки и включать или исключать файлы на основе выбора флажка.

...