Поделиться через


Пошаговое руководство. Развертывание настройки на уровне документа с помощью файла установщика Windows (система 2003)

Обновлен: Ноябрь 2007

Применение

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня документа

Версия Microsoft Office

  • Microsoft Office 2003

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

В данном пошаговом руководстве демонстрируется процесс создания файла установщика Microsoft Windows (MSI-файла), используемого для развертывания настройки на уровне документа. Дополнительные сведения о настройках уровня документа см. в разделе Архитектура настроек на уровне документа.

В данном пошаговом руководстве представлены указанные ниже задачи.

  • Создание проекта программы установки, используемого для построения файла установщика Windows.

  • Изменение проекта программы установки таким образом, чтобы файл установщика Windows устанавливал необходимое решение Visual Studio Tools for Office.

  • Добавление в проект программы установки действия, при котором файл установщика Windows изменяет манифест приложения, внедренный в документ решения Visual Studio Tools for Office.

В данном пошаговом руководстве предполагается, что на целевом компьютере уже установлены компоненты, необходимые для запуска решений Visual Studio Tools for Office. Создаваемый файл установщика Windows не проверяет наличие этих компонентов и не устанавливает их. Сведения об установке необходимых компонентов см. в статье Развертывание пакета Visual Studio 2005 Tools для решений Office Second Edition с использованием установщика Windows (на английском языке). Сведения о компонентах, необходимых для запуска решений Visual Studio Tools for Office, см. в разделе Практическое руководство. Подготовка компьютеров пользователей для выполнения решений (система 2003).

ms268758.alert_note(ru-ru,VS.90).gifПримечание.

Перед запуском решения необходимо предоставить полное доверие в политике безопасности конечного пользователя сборкам, используемым в решениях Visual Studio Tools for Office. Создаваемый в данном пошаговом руководстве файл установщика Windows не развертывает политику безопасности, необходимую для запуска решения. Сведения о том, как добавить настраиваемое действие для предоставления доверия сборке настройки, см. в статье Развертывание пакета Visual Studio 2005 Tools для решений Office Second Edition с использованием установщика Windows (на английском языке). Сведения о безопасности для решений Visual Studio Tools for Office см. в разделах Требования безопасности при выполнении решений Office (для системы 2003) и Рекомендации по безопасности для решений Office (система 2003). Сведения о настройке политики безопасности на компьютерах конечных пользователей см. в разделе Развертывание политики безопасности.

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы указанные ниже компоненты.

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System);

  • Microsoft Office Word 2003 или Microsoft Office Excel 2003.

Создание проекта

Создайте на этом этапе проект книги Excel. Если вы хотите выполнить инструкции данного пошагового руководства для существующего решения Word или Excel, перейдите к разделу "Создание проекта программы установки" и замените во всех примерах кода и инструкциях имя проекта ExcelDeployment на имя своего проекта.

Создание нового проекта

Созданная книга Excel открывается в конструкторе Visual Studio. Проект ExcelDeployment добавляется в Обозреватель решений.

Добавление кода для книги

В рамках данного фрагмента необходимо написать код для проверки работоспособности решения при открытии документа. Добавьте в обработчик событий Startup книги окно сообщения.

Добавление окна сообщения в обработчик событий инициализации

  1. В Обозревателе решений щелкните правой кнопкой мыши файл ThisWorkbook.vb или ThisWorkbook.cs и выберите в контекстном меню пункт Просмотреть код.

  2. Чтобы вывести в процессе инициализации окно сообщения, добавьте в обработчик событий Startup класса ThisWorkbook приведенный ниже код.

    Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("The workbook is deployed successfully.")
    End Sub
    
    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("The workbook is deployed successfully.");
    }
    
  3. Чтобы запустить проект, нажмите клавишу F5.

    Запустится приложение Excel и откроется окно сообщения.

  4. Закройте окно сообщения.

  5. Закройте приложение Excel.

Создание проекта программы установки

В проектах программ установки содержатся файлы и код, который можно скомпилировать и создать для решения файл установщика Windows. Дополнительные сведения см. в разделе Проекты установки.

Создание для решения проекта программы установки

  1. Щелкните узел решения в Обозревателе решений правой кнопкой мыши.

  2. Выберите в контекстном меню пункт Добавить, а затем — пункт Новый проект.

    Откроется диалоговое окно Добавление нового проекта.

  3. В области Типы проектов разверните узел Другие и выберите пункт Установка и развертывание.

  4. В области Шаблоны выберите Проект установки.

  5. Назовите проект ExcelSetup.

  6. Нажмите кнопку ОК.

    В Обозревателе решений появится проект установки. По умолчанию файл установщика Windows, создаваемый с помощью данного проекта установки, включает диалоговое окно, с помощью которого пользователь может указать папку установки решения. Дополнительные сведения см. в разделе Диалоговое окно "Папка установки" в пользовательском интерфейсе.

Добавление в проект установки книги и сборки решения

Основные выходные данные проекта ExcelDeployment — это книга и сборка решения. Добавьте эти компоненты в проект установки.

Добавление документа и сборки в проект установки

  1. Щелкните в Обозревателе решений правой кнопкой мыши узел Проект ExcelSetup.

  2. Выберите в контекстном меню пункт Просмотреть, а затем — пункт Файловая система.

  3. Щелкните в области слева правой кнопкой мыши элемент Папка приложения.

  4. Выберите в контекстном меню пункт Добавить, а затем — пункт Выходные данные проекта.

  5. Выберите в поле Проект пункт ExcelDeployment.

  6. Выберите в списке типов выходных данных пункт Основные выходные данные.

  7. Нажмите кнопку ОК.

    В области справа появятся выходные данные и зависимости проекта.

  8. В Обозревателе решений разверните в узле ExcelSetup проекта узел Обнаруженные зависимости.

  9. Щелкните правой кнопкой мыши каждую зависимость, кроме Microsoft .NET Framework, и выберите в контекстном меню пункт Исключить.

Создание проекта настраиваемого действия

Настраиваемые действия — это одна из возможностей установщика Windows. Эти действия используются для запуска в конце процесса установки кода, выполняющего действия, которые невозможно выполнить в процессе установки. Дополнительные сведения см. в разделе Настраиваемые действия.

Создание проекта настраиваемого действия

  1. Щелкните узел решения в Обозревателе решений правой кнопкой мыши.

  2. Выберите в контекстном меню пункт Добавить, а затем — пункт Новый проект.

    Откроется диалоговое окно Добавление нового проекта.

  3. В области Типы проектов разверните узел используемого языка программирования и выберите пункт Windows.

  4. В области Шаблоны выберите пункт Библиотека классов.

  5. Назовите проект ExcelCustomAction.

  6. Нажмите кнопку ОК.

    В Обозревателе решений появится новый проект.

  7. В Обозревателе решений щелкните в проекте ExcelCustomAction правой кнопкой мыши файл Class1.vb или Class1.cs и выберите пункт Удалить. Этот файл не используется в данном пошаговом руководстве.

Создание настраиваемого действия для изменения манифеста приложения

Ранее в данном руководстве при запуске проекта по нажатию клавиши F5 процесс построения завершился изменением манифеста приложения, внедренного в книгу, чтобы указать относительный путь к сборке. Если после установки книга и сборка будут находиться в одной папке, изменять манифест приложения не требуется, и этот этап можно пропустить. Однако если после установки решения необходимо предоставить пользователю возможность переместить книгу в другую папку, необходимо изменить манифест приложения таким образом, чтобы в нем указывался полный путь к сборке.

После завершения процесса установки необходимо обновить манифест приложения, внедренный в документ решения Visual Studio Tools for Office, выполнив настраиваемое действие, поскольку местоположение сборки решения будет неизвестно до тех пор, пока пользователь не укажет это местоположение в процессе установки. Измените внедренный манифест приложения с помощью класса ServerDocument. Чтобы воспользоваться классом ServerDocument в проекте установки, добавьте код в класс Installer проекта настраиваемого действия.

Создание настраиваемого действия по изменению манифеста приложения

  1. Щелкните в Обозревателе решений правой кнопкой мыши проект ExcelCustomAction.

  2. Выберите в контекстном меню пункт Добавить, а затем — пункт Новый элемент.

    Откроется диалоговое окно Добавление нового элемента.

  3. Выберите пункт Класс установщика и присвойте ему имя ManifestEditor.

  4. Добавьте в проект ExcelCustomAction ссылку на сборку Microsoft.VisualStudio.Tools.Applications.Runtime.

  5. В Обозревателе решений щелкните правой кнопкой мыши файл ManifestEditor.cs или ManifestEditor.vb и выберите в контекстном меню команду Просмотреть код.

  6. Добавьте в начало файла с кодом приведенный ниже оператор Imports или using.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  7. Добавьте в класс ManifestEditor приведенный ниже код.

    В этом коде переопределяется метод Install, используемый для выполнения в процессе установки настраиваемых действий. В коде свойству AssemblyPath присваивается указанная пользователем папка установки. Указанные пользователем путь установки и имя документа извлекаются из свойства Parameters.

    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        UpdateApplicationManifest()
        MyBase.Install(stateSaver)
    End Sub
    
    Private Sub UpdateApplicationManifest()
    
        ' Get the parameters passed to the task.
        Dim targetDir As String = Me.Context.Parameters("targetdir")
        Dim documentName As String = Me.Context.Parameters("documentname")
        Dim assemblyName As String = Me.Context.Parameters("assemblyname")
    
        ' Get the application manifest from the document.
        Dim documentPath As String = System.IO.Path.Combine(targetDir, documentname)
        Dim serverDocument1 As ServerDocument = New ServerDocument(documentPath, _
                System.IO.FileAccess.ReadWrite)
    
        Try
            Dim appManifest1 As AppManifest = serverDocument1.AppManifest
            Dim assemblyPath As String = System.IO.Path.Combine(targetDir, assemblyName)
            appManifest1.Dependency.AssemblyPath = assemblyPath
            serverDocument1.Save()
    
        Finally
            If Not serverDocument1 Is Nothing Then
                serverDocument1.Close()
            End If
        End Try
    End Sub
    
    // Override the Install method to update the customization location
    // in the application manifest.
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        UpdateApplicationManifest();
        base.Install(stateSaver);
    }
    
    // Update the application manifest according to the the install location.
    private void UpdateApplicationManifest()
    {
        // Get the parameters passed to the task.
        string targetDir = this.Context.Parameters["targetdir"];
        string documentName = this.Context.Parameters["documentname"];
        string assemblyName = this.Context.Parameters["assemblyname"];
    
        // Get the application manifest from the document.
        string documentPath = System.IO.Path.Combine(targetDir, documentName);
        ServerDocument serverDocument1 = new ServerDocument(documentPath,
            System.IO.FileAccess.ReadWrite);
    
        try
        {
            AppManifest appManifest1 = serverDocument1.AppManifest;
            string assemblyPath = System.IO.Path.Combine(targetDir, assemblyName);
            appManifest1.Dependency.AssemblyPath = assemblyPath;
            serverDocument1.Save();
        }
        finally
        {
            if (serverDocument1 != null)
            {
                serverDocument1.Close();
            }
        }
    }
    
  8. Щелкните в Обозревателе решений правой кнопкой мыши проект ExcelCustomAction и выберите пункт Построение.

Добавление в проект установки настраиваемого действия

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

Добавление основных выходных данных проекта настраиваемого действия в проект установки

  1. Щелкните в Обозревателе решений правой кнопкой мыши узел Проект ExcelSetup.

  2. Выберите в контекстном меню пункт Просмотреть, а затем — пункт Настраиваемые действия.

  3. В Редакторе настраиваемых действий щелкните правой кнопкой узел Установка и выберите пункт Добавить настраиваемое действие.

  4. В поле Искать в выберите пункт Папка приложения и нажмите кнопку Добавить выходные данные.

  5. Выберите в поле Проект пункт ExcelCustomAction.

  6. Выберите в списке типов выходных данных пункт Основные выходные данные и нажмите кнопку ОК.

  7. Убедитесь в том, что Основные выходные данные проекта ExcelCustomAction (активный) были добавлены в список основных выходных данных проекта установки, и нажмите кнопку ОК.

  8. Разверните в Редакторе настраиваемых действий узел Установка.

  9. Щелкните правой кнопкой мыши Основные выходные данные проекта ExcelCustomAction (активный) и выберите пункт Окно "Свойства".

  10. В окне Свойства присвойте свойству CustomActionData указанную ниже строку.

    /targetdir="[TARGETDIR]\" /documentname="ExcelDeployment.xls" /assemblyname="ExcelDeployment.dll"
    

    Сведения о свойстве CustomActionData см. в разделе Свойство CustomActionData.

  11. Щелкните правой кнопкой мыши в Обозревателе решенийПроект ExcelSetup и выберите пункт Построения.

Тестирование проекта

Теперь можно протестировать проект, чтобы убедиться в том, что решение было установлено при запуске файла установщика Windows на компьютере разработчика.

Тестирование проекта

  1. Щелкните правой кнопкой мыши в Обозревателе решенийПроект ExcelSetup и выберите пункт Выполнить.

  2. Следуйте инструкциям мастера установки и укажите папку установки на компьютере разработчика.

  3. Откройте книгу Excel из папки установки.

  4. Проверьте, появилось ли окно сообщения.

См. также

Задачи

Пошаговое руководство. Развертывание настройки на уровне документа с помощью манифеста развертывания (система 2003)

Основные понятия

Развертывание решений Office (система 2003)

Развертывание настроек уровня документа (системы 2003)

Модели развертывания (система 2003)

Настраиваемые действия

Другие ресурсы

Основные понятия развертывания с помощью установщика Windows