Installutil.exe (установщик)
Программа для установки является программой командной строки, с помощью которой можно устанавливать и удалять ресурсы сервера путем выполнения компонентов установщика в соответствующих сборках. Эта программа работает совместно с классами в пространстве имен System.Configuration.Install.
Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.
Введите в командной строке: .
Синтаксис
installutil [/u[ninstall]] [options] assembly [[options] assembly] ...
Параметры
Аргумент | Description |
---|---|
assembly |
Имя файла сборки, в которой должны выполняться компоненты установщика. Пропустите этот параметр, если указывается строгое имя сборки с помощью параметра /AssemblyName . |
Параметры
Оператор сравнения | Описание |
---|---|
/h[elp] –или– /? |
Отображает синтаксис команд и параметров программы. |
/help сборка–или– /? сборка |
Отображает дополнительные параметры, распознаваемые отдельными установщиками в пределах указанной сборки, вместе с синтаксисом команд и параметров для программы InstallUtil.exe. Этот параметр добавляет текст, возвращенный каждым свойством компонента установщика Installer.HelpText, в текст справки программы InstallUtil.exe. Например, если ServiceProcessInstaller.Account имеет значение User , доступны параметры /username и /password . |
/AssemblyName "имя_сборки,Version = основная.дополнительная.сборка.редакция, Culture = языковой стандарт, PublicKeyToken = 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=
(без аргумента имени файла) в командной строке.
Замечания
платформа .NET Framework приложения состоят из традиционных программных файлов и связанных ресурсов, таких как очереди сообщений, журналы событий и счетчики производительности, которые необходимо создать при развертывании приложения. Компоненты установщика сборки могут использоваться для создания таких ресурсов при установке приложения и для их удаления при удалении приложения. Программа Installutil.exe обнаруживает и выполняет эти компоненты установщика.
В командной строке можно указать сразу несколько сборок. Параметры должны указываться перед именами сборок, к установке которых они относятся. За исключением /u
и /AssemblyName
, параметры являются накопительными, но переопределяемыми. То есть параметры, указанные для одной сборки, применяются и ко всем последующим сборкам. Исключением являются параметры, с которыми указывается новое значение.
При запуске программы Installutil.exe для сборки без указания параметров она помещает в каталог сборки следующие три файла.
- InstallUtil.InstallLog — содержит общее описание хода выполнения установки.
- имя_сборки.InstallLog — содержит сведения, относящиеся к этапу фиксации процесса установки. Дополнительные сведения об этапе фиксации см. в описании метода Commit.
- имя_сборки.InstallState — содержит данные, используемые для удаления сборки.
Программа Installutil.exe использует отражение для проверки указанных сборок и поиска всех типов Installer, у которых значение атрибута System.ComponentModel.RunInstallerAttribute имеет значение true
. Программа, выполняющая метод Installer.Install или Installer.Uninstall для каждого экземпляра типа Installer. Программа Installutil.exe выполняет установку как транзакцию, то есть если какую-либо сборку не удалось установить, отменяется установка всех остальных сборок. Удаление не считается транзакцией.
Программа Installutil.exe не может устанавливать или удалять сборки с отложенной подписью, но может устанавливать и удалять сборки со строгими именами.
32-разрядная версия среды CLR поставляется только с 32-разрядной версией средства установщика, но 64-разрядная версия среды CLR поставляется с 32-разрядными и 64-разрядными версиями средства установщика. При использовании 64-разрядной среды CLR используйте 32-разрядное средство установщика для установки 32-разрядных сборок и 64-разрядного установщика для установки 64-разрядных и общих сборок CIL. Обе версии программы установщика ведут себя одинаково.
Нельзя использовать Installutil.exe для развертывания службы Windows, созданной с помощью C++, так как Installutil.exe не распознает внедренный машинный код, созданный компилятором C++. При попытке развернуть службу Windows, написанную на языке C++, с помощью программы Installutil.exe возникает исключение, например 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