Обернуть установочный файл Office 2010 в проект установки? - PullRequest
0 голосов
/ 20 мая 2011

Это странно, я знаю, но вот оно: у меня есть примерно 10 сателлитных офисов, которыми я управляю, и я перевожу установки программного обеспечения в конфигурационные бесплатные / бесплатные изображения настроек, чтобы оставить их на месте для переустановки сбоев и т. Д., Все мои файлы сделано за исключением установки Office 2010.

Я пытаюсь сделать следующее:

  1. Программа установки Office EXE была установлена ​​с файлом config.xml для автоматической установки с ключом для этого пользователя и всеми остальными. это один диск для всех пользователей и использует основной XML-файл для имен ключей и т. д., установщик задает один вопрос «выберите имя пользователя», и когда человек, устанавливающий приложение, нажимает следующую кнопку, программа вставляет значения для этого пользователя в строка и записывает это в config.xml в папке установки для офиса и запускает установку.

  2. после завершения установки Office он создаст файл prf для профиля outlook и запустит команду outlook.exe / importprf \ yadda \ yadda.

  3. приложение тогда скажет, что оно сделано и закрыто.

Проблема в деталях:

  • это (я думаю) должно быть очень простым, я не уверен, как контролировать установку офисного приложения, чтобы, когда это будет сделано, это вызвало следующий шаг в процессе. Я думал о том, чтобы завершить приложение там и использовать ключ реестра для первого запуска, чтобы запустить команду для импорта профиля, но я бы предпочел посмотреть, смогу ли я заставить это работать так, как я изложил выше, если это вообще возможно.

Теперь я не самый умный человек на земле, поэтому, если есть другой способ автоматизировать установку пакета розничного офиса и автоматически установить профиль пользователя с помощью некоторых файлов конфигурации, я все для этого, я просто хочу наименьшее количество шагов на -сайт как можно. в моем решении установщик выбирает имя, а затем после импорта профиля необходимо ввести пароль, и все готово. В качестве примечания, есть ли в файле PRF параметр для пароля (используется учетная запись pop3) и параметр для сохранения пароля? Было бы неплохо, но я уверен, что нет.

Теперь, чтобы сэкономить время, это все отдельные малые предприятия без DC, и у каждой компании недостаточно лицензий для Open Value Licensing, и я уже знаю, что все это можно решить с помощью средства настройки Office для создания prf. файл с сетевой установкой и сценарием входа. Кроме того, у меня уже есть образы системы, чтобы выполнить восстановление «с нуля». Эти установки предназначены для случаев, когда полная переустановка системы не требуется.

1 Ответ

0 голосов
/ 20 мая 2011

Ответ не в проекте установки, а в старомодной форме окон. Я понял, что:

  1. Мне действительно не нужен был проект установки, чтобы сделать это.
  2. Может использовать пользовательский process.start () в сочетании с waitforexit () для достижения желаемого результата.
  3. Тогда просто продолжай оттуда.

Ну, во всяком случае, это мое решение моей странной проблемы, я просто опубликовал ответ, чтобы, если кто-то должен был сделать что-то подобное, у него это было бы.

Пример:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;


namespace waitforexittesting
{
static class Program
{

    static void Main()
    {
        LaunchCommandLineApp();

    }

    static void LaunchCommandLineApp()
    {

        // Use ProcessStartInfo class
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "C:\\googletalk.exe";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;

        try
        {
            // Start the process with the info specified.
            // Call WaitForExit and then the using statement will close.
            using (Process exeProcess = Process.Start(startInfo))
            {
                exeProcess.WaitForExit();
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
        catch
        {
            // Log error.
            MessageBox.Show("The file could not be found.", 
         "My Application",MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

        }
    }

}
}
...