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


Installutil.exe (инструмент для установки)

Инструмент для установки — это программа командной строки, которая позволяет устанавливать и удалять ресурсы сервера путем выполнения компонентов установщика в соответствующих сборках. Этот инструмент работает в сочетании с классами из пространства имен System.Configuration.Install.

Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.

  • Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.

    – или –

    Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).

  • В командной строке введите следующее:

installutil [/u[ninstall]] [options] assembly [[options] assembly] ...

Параметры

Аргумент

Описание

assembly

Имя файла сборки, в которой должны выполняться компоненты установщика. Пропустите Этот параметр, если вы хотите указать строгое имя сборки, используя параметр /AssemblyName.

Параметры

Параметр

Описание

/h[elp]

– или –

/?

Отображает синтаксис команд и параметры программы.

/help сборка

– или –

/? сборка

Отображает дополнительные параметры, распознаваемые отдельными установщиками в пределах указанной сборки, вместе с синтаксисом команд и параметров для InstallUtil.exe. Этот параметр добавляет текст, возвращенный каждым свойством компонента установщика Installer.HelpText, в текст справки InstallUtil.exe.

/AssemblyName "имя_сборки

,Version=основной_номер_версии.дополнительный_номер_версии.построение.редакция

,Culture=языковой стандарт

,PublicKeyToken=токен_открытого_ключа"

Задает строгое имя сборки, которое нужно зарегистрировать в глобальном кэше сборок. Имя сборки должно содержать версию, язык и региональные стандарты, а также маркер открытого ключа сборки. Полное имя должно быть заключено в кавычки.

Например, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" — это полное имя сборки.

/InstallStateDir=[имя_каталога]

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

/LogFile=[имя_файла]

Задает имя файла журнала, в котором ведется протокол установки. По умолчанию, если параметр /LogFile опущен, создается файл журнала с именем имя_сборки.InstallLog. Если имя_файла пропущено, файл журнала не создается.

/LogToConsole={true|false}

Если значение — true, выходные данные отображаются на консоли. Если значение флага равно false (значение по умолчанию), вывод на консоль подавляется.

/ShowCallStack

Если в ходе установки возникает исключение, содержимое стека вызовов заносится в файл журнала.

/u[ninstall]

Удаляет заданные сборки. В отличие от других параметров, /u применяется ко всем сборкам, независимо от того, где этот параметр стоит в командной строке.

Дополнительные параметры установщика

Отдельные установщики, используемые в сборке, кроме перечисленных в разделе Параметры параметров могут распознавать и другие параметры. Чтобы узнать об этих параметрах, запустите InstallUtil.exe с путями к сборкам в командной строке, а также параметром /? или /help. Чтобы задать эти параметры, необходимо включить их в командную строку вместе с параметрами, распознаваемыми InstallUtil.exe.

ПримечаниеПримечание

Текст справки о параметрах, поддерживаемых отдельными компонентами установщика, возвращается свойством Installer.HelpText.Отдельные варианты, которые были введены в командной строке, доступны программно из свойства Installer.Context.

Все параметры командной строки записываются в файл журнала установки. Однако если используется параметр /Password, распознаваемый некоторыми компонентами установщика, сведения о пароле будут заменены восемью звездочками (*) и не будут отображаться в файле журнала.

Важное примечаниеВажно

В некоторых случаях передаваемые в установщик параметры могут содержать конфиденциальные или личные сведения, которые по умолчанию записываются в обычный текстовый файл журнала.Для предотвращения этого поведения можно запретить ведение журнала, указав /LogFile= (без аргумента имя_файла) после Installutil.exe в командной строке.

Заметки

Приложения .NET Framework состоят из традиционных файлов программ и связанных ресурсов, таких как очереди сообщений, журналы событий и счетчики производительности, которые создаются после развертывания приложения. Компоненты установщика могут использоваться для создания этих ресурсов при установке приложения и для их удаления при удалении приложения. Installutil.exe обнаруживает и выполняет эти компоненты установщика.

В командной строке можно указать сразу несколько сборок. Параметры должны указываться перед именами сборок, к установке которых они относятся. За исключением /u и /AssemblyName, параметры являются накопительными, но переопределяемыми. То есть параметры, указанные для одной сборки, применяются и ко всем последующим сборкам. Исключением являются параметры, с которыми указывается новое значение.

При запуске Installutil.exe для сборки без указания параметров программа помещает в каталог сборки следующие три файла:

  • InstallUtil.InstallLog — содержит общее описание протокола установки.

  • Имя_сборки.InstallLog. Содержит сведения, относящиеся к фазе завершения процесса установки. Дополнительные сведения об этапе фиксации см. в описании метода Commit.

  • assemblyname.InstallState — содержит данные, используемые для удаления установленной сборки.

Installutil.exe использует отражение для проверки указанных сборок и поиска всех типов Installer, у которых значение атрибута System.ComponentModel.RunInstallerAttribute — true. Средство, выполняющее метод Installer.Install или Installer.Uninstall для каждого экземпляра типа Installer. Installutil.exe выполняет установку как транзакцию, т. е. если какую-либо сборку не удалось установить, отменяется установка всех остальных сборок. Удаление не считается транзакцией.

Installutil.exe не может устанавливать или удалять сборки с отложенной подписью, но может устанавливать и удалять сборки со строгими именами.

Начиная с версии 2.0 .NET Framework, 32-разрядная версия среды CLR поставляется только с 32-разрядной версией программы установщика, но 64-разрядная среды CLR поставляется и с 32-разрядной, и 64-разрядной версией программы установщика. При использовании 64-разрядной среды CLR, используйте 32-разрядную программу установщика для установки 32-разрядных сборок, а 64-разрядную программу установщика для установки 64-разрядных и MSIL-сборок. Обе версии программы установщика ведут себя одинаково.

Невозможно использовать Installutil.exe для развертывания службы Windows, созданной с помощью C++, потому что Installutil.exe не может распознать встроенный машинный код, созданный компилятором C++. При попытке развернуть при помощи Installutil.exe службу Windows, созданную с помощью C++, возникает исключение, например BadImageFormatException. Для работы с этим сценарием перенесите код службы в модуль C++ и запишите объект установщика в C# или Visual Basic.

Примеры

Следующая команда выводит описание синтаксиса и параметров команды для InstallUtil.exe.

installutil /?

Следующая команда выводит описание синтаксиса и параметров команды для InstallUtil.exe. Она также отображает в myAssembly.exe описание и список параметров, поддерживаемых компонентами установщика, если свойству Installer.HelpText установщика было задано значение текста справки.

installutil /? myAssembly.exe

Следующая команда выполняет компоненты установщика в сборке myAssembly.exe.

installutil myAssembly.exe

Следующая команда выполняет компоненты установщика в сборке с помощью переключателя /AssemblyName и полного имени.

installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

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

installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

Следующая команда выполняет компоненты удаления в сборке myAssembly.exe.

installutil /u myAssembly.exe 

Следующая команда выполняет компоненты установщика в сборках myAssembly1.exe и myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

Поскольку позиция параметра /u в командной строке не имеет значения, это эквивалентно следующей команде.

installutil /u myAssembly1.exe myAssembly2.exe

Следующая команда выполняет компоненты установщика в сборке myAssembly.exe и указывает, что сведения о ходе установки должны записываться в файл myLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe 

Следующая команда выполняет установщиков в сборке myAssembly.exe, указывает, что сведения о ходе выполнения должны быть написаны в myLog.InstallLogи использует пользовательский параметр установщика /reg для указания, что обновления должны производиться в реестре системы.

installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe

Следующая команда выполняет установщиков в сборке myAssembly.exe, использует пользовательский параметр установщика /email для указания адреса электронной почты пользователя и подавляет вывод в файл журнала.

installutil /LogFile= /email=admin@mycompany.com myAssembly.exe

Следующая команда записывает сведения о процессе установки для сборки myAssembly.exe в журнал myLog.InstallLog, а сведения для сборки myTestAssembly.exe в журнал myTestLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe

См. также

Ссылки

System.Configuration.Install

Командная строка Visual Studio и пакета Windows SDK

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

Инструменты .NET Framework

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Добавлены сведения об использовании командных строк Visual Studio и Windows SDK.

Улучшение информации.