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


Пошаговое руководство. Использование настраиваемого действия для предварительной компиляции сборки при установке

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

Редактор настраиваемых действий применяется для задания дополнительных действий, выполняемых на конечном компьютере по окончании установки. В данном пошаговом руководстве путь к DLL передается в свойстве CustomActionData для того, чтобы выполнить предварительную компиляцию сборки в машинный код во время установки.

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

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или версии среды. Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

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

Приведенные ниже инструкции демонстрируют, как создать проект развертывания с помощью проекта Visual Basic; однако эти общие принципы применимы к проектам на всех языках Visual Studio, поддерживающим развертывание приложений Windows.

Чтобы создать класс настраиваемого действия

  1. В меню Файл выберите команду новыйпроект.

  2. В диалоговом окне Создание проекта выберите Проекты Visual Basic в области Типы проектов, затем в области Шаблоны выберите пункт Библиотека классов. В поле Имя введите InstallClass.

  3. В меню Проект выберите пункт Добавить новый элемент.

  4. В диалоговом окне Добавить новый элемент выберите пункт Класс установщика. В поле Имя введите InstallClass.vb. Нажмите кнопку Добавить, чтобы добавить класс к проекту.

Чтобы добавить код к настраиваемому действию

  1. Щелкните правой кнопкой мыши InstallClass.vb в Обозревателе решений (или в области конструктора) и выберите команду Просмотреть код, чтобы открыть Редактор кода. Добавьте следующий код в начало модуля после строки Imports System.Configuration.Install:

    Imports System.Runtime.InteropServices
    Imports System.Text
    
  2. В InstallClass.vb добавьте следующее объявление после Public Class InstallClass:

    Private Declare Function GetCORSystemDirectory Lib "mscoree.dll" _
      (<Runtime.InteropServices.MarshalAs( _
      System.Runtime.InteropServices.UnmanagedType.LPWStr)> _
      ByVal Buffer As System.Text.StringBuilder, _
      ByVal BufferLength As Integer, ByRef Length As Integer) As Integer
    
  3. В InstallClass.vb после оператора End Sub для MyBase.New добавьте следующую процедуру для переопределения процедуры базового класса Install:

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
    Public Overrides Sub Install(ByVal savedState As _
      System.Collections.IDictionary)
    
       MyBase.Install(savedState)
       Dim Args As String = Me.Context.Parameters.Item("Args")
    
       If Args = "" Then
          Throw New InstallException("No arguments specified")
       End If
    
       ' Gets the path to the Framework directory.
       Dim Path As New System.Text.StringBuilder(1024)
       Dim Size As Integer
       GetCORSystemDirectory(Path, Path.Capacity, Size)
    
       Dim P As Process
       ' Quotes the arguments, in case they have a space in them.
       Dim Si As New ProcessStartInfo(Path.ToString() & "ngen.exe", Chr(34) _
         & Args & Chr(34))
       Si.WindowStyle = ProcessWindowStyle.Hidden
       Try
          P = Process.Start(Si)
          P.WaitForExit()
       Catch e As Exception
          Throw New InstallException(e.Message)
       End Try
    End Sub
    

Чтобы добавить проект развертывания

  1. В меню Файл выберите команду Добавить, затем выберите пункт Создать проект.

  2. В диалоговом окне Добавить новый проект выберите пункт Проекты установки и развертывания в области Тип проекта, а затем выберите пункт Проект установки в области Шаблоны. В поле Имя введите Установщик InstallClass.

  3. В окне Свойства выберите свойство ProductName и введите InstallClass.

  4. В Редакторе файловой системы выберите узел Папка приложения. В меню Действие выберите команду Добавить, а затем выберите пункт Выходной элемент проекта.

  5. В диалоговом окне Добавить выходную группу проекта выберите основной выходной файл проекта InstallClass, затем щелкните ОК, чтобы закрыть диалоговое окно.

Чтобы добавить настраиваемое действие

  1. Выберите проект Установщик InstallClass в Обозревателе решений. В меню Вид выберите пункт Редактор, а затем Настраиваемые действия.

  2. В Редакторе настраиваемых действий выберите узел Настраиваемые действия. В меню Действие выберите команду Добавить настраиваемое действие.

  3. В диалоговом окне Выбор элемента в проекте, дважды щелкните строку Папка приложения и выберите Основной выходной файл проекта InstallClass (Active). Нажмите ОК, чтобы добавить настраиваемое действие InstallClass ко всем четырем узлам настраиваемых действий.

  4. Выберите узел Основной выходной файл проекта InstallClass (Active) под узлом Установка.

  5. В окне Свойства выберите свойство CustomActionData и введите /Args="[TARGETDIR]InstallClass.dll". Необходимо указывать кавычки.

  6. Проделайте то же самое с каждым из остальных трех экземпляров узла Основной выходной файл проекта InstallClass (Active).

  7. В меню Построение выберите команду Построить установщик InstallClass.

Чтобы выполнить установку на компьютер разработчика

  • Выберите проект Установщик InstallClass в Обозревателе решений. В меню Проект выберите пункт Установка.

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

    Для запуска установщика требуются разрешения на установку программ на данном компьютере.

Чтобы выполнить развертывание на другом компьютере

  1. В Windows Explorer перейдите в каталог проекта и найдите построенный установщик. Путем по умолчанию будет \Documents and Settings\ ВашеИмяПользователя \Мои документы\Visual Studio 2005\Проекты\ ИмяПапкиРешения \Установщик Мой блокнот\ КонфигурацияПроекта \Мой блокнот MSI. По умолчанию КонфигурацияПроекта ― либо Отладка, либо Выпуск.

  2. Скопируйте файл Установщик InstallClass.msi, Setup.exe и все остальные файлы и вложенные папки в папку на другом компьютере.

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

    Для установки на компьютер, не подключенный к сети, скопируйте файлы на традиционный носитель, например на компакт–диск.

  3. На конечном компьютере дважды щелкните файл Setup.exe, чтобы запустить установщик.

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

    Для запуска установщика требуются разрешения на установку программ на данном компьютере.

Чтобы проверить установку

  • Перейдите к папке, в которой находятся сборки %windir%\assembly (например, C:\Windows\assembly) и найдите InstallClass.. В столбце Тип сборка должна быть помечена как Образ в машинном коде.

Чтобы удалить приложение

  1. В Панели управления Windows дважды щелкните пункт Установка и удаление программ.

  2. В диалоговом окне Установка и удаление программ, выберите Установщик InstallClass, нажмите кнопку Удалить, а затем ОК, чтобы закрыть диалоговое окно.

    3hwzzhyd.alert_note(ru-ru,VS.90).gifСовет.

    Чтобы удалить приложение с компьютера разработки, в меню Проект выберите команду Удалить.

См. также

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

Компиляция MSIL в машинный код

Ссылки

Свойство CustomActionData

Генератор образов в машинном коде (Ngen.exe)

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

Управление настраиваемыми действиями при развертывании