О динамической конфигурации App-V 5.1

Обновлено: Август 2015 г.

Назначение: Application Virtualization 5.1

С помощью динамической конфигурации можно настроить пакет App-V 5.1 для пользователя. Используйте приведенные ниже сведения для создания или изменения существующего файла динамической конфигурации.

Редактируя файл динамической конфигурации, вы меняете то, как пакет App-V 5.1 будет запускаться для пользователя или группы. Это более удобный метод настройки пакета. Вы можете изменять последовательность пакетов, используя нужные параметры, и хранить содержимое пакета и настраиваемые параметры независимо друг от друга.

Дополнительно. Динамическая конфигурация

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

  • Файл конфигурации пользователя

  • Файл конфигурации развертывания

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

noteПримечание
Следующие сведения могут использоваться только для изменения файлов конфигурации, сгенерированных в Sequencer, для настройки пакетов на соответствие требованиям определенного пользователя или группы пользователей.

Содержимое файла динамической конфигурации

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

 

XML-файл конфигурации пользователя

XML-файл конфигурации развертывания

Манифест пакета

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

В списке отображаются дополнительные сведения о типах этих двух файлов:

  • Файл конфигурации пользователя (UserConfig) — позволяет задавать или изменять пользовательские параметры для пакета. Эти параметры будут применяться для определенного пользователя при развертывании пакета на компьютере, на котором работает клиент App-V 5.1.

  • Файл конфигурации развертывания (DeploymentConfig) — позволяет задавать или изменять параметры пакета по умолчанию. Эти параметры будут применяться для всех пользователей при развертывании пакета на компьютере, на котором работает клиент App-V 5.1.

Чтобы настроить параметры пакета для определенного набора пользователей на компьютере или внести изменения, которые будут применяться к локальным расположениям пользователей, например HKCU, необходимо использовать файл UserConfig. Чтобы изменить параметры по умолчанию пакета для всех пользователей на компьютере или внести изменения, которые будут применяться к глобальным расположениям, таким как HKEY_LOCAL_MACHINE, и к папке всех пользователей, необходимо использовать файл DeploymentConfig.

Файл UserConfig предоставляет параметры конфигурации, которые могут быть применены к одному пользователю без влияния на других пользователей в клиенте.

  • Расширения, которые будут интегрированы в базовую систему на пользователя: ярлыки, сопоставления типов файлов, протоколы URL-адресов, AppPaths, клиенты ПО и COM.

  • Виртуальные подсистемы: объекты приложений, переменные среды, изменения реестра, службы и шрифты.

  • Скрипты (только в пользовательском контексте).

  • Центр управления (для управления сосуществованием пакета с App-V 4.6).

Файл DeploymentConfig предоставляет параметры конфигурации в двух разделах, один из которых относится к контексту компьютера, а другой — к контексту пользователя, обеспечивая возможности, перечисленные выше в списке для файла UserConfig.

  • Все параметры UserConfig, приведенные выше.

  • Расширения, которые могут применяться только глобально для всех пользователей.

  • Виртуальные подсистемы, которые могут быть настроены для глобальных расположений машины, например в реестре.

  • URL-адрес источника продукта.

  • Скрипты (только в машинном контексте).

  • Элементы управления для завершения дочерних процессов.

Структура файла

Структура файла динамической конфигурации App-V 5.1 рассматривается в следующем разделе.

Файл динамической конфигурации пользователя

Header — заголовок файла динамической конфигурации пользователя, который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?><UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">

PackageId — это то же значение, что и в файле манифеста.

Body — основной текст файла динамической конфигурации пользователя может включать все пункты расширений приложений, заданные в файле манифеста, а также сведения для настройки виртуальных приложений. В основном тексте разрешены четыре подраздела.

  1. Applications — всем расширениям приложений, содержащимся в файле манифеста в пакете, назначаются идентификаторы приложений, которые также задаются в файле манифеста. Это позволяет включать или отключать все эти расширения для конкретного приложения в пакете. Идентификатор приложения должен существовать в файле манифеста, иначе он будет проигнорирован.

    <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">



    <Приложения>



    <!-- В политике нельзя определить новые приложения. Клиент AppV Client игнорирует идентификатор приложения, который отсутствует в файле манифеста -->



    <Идентификатор приложения="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">



    </Application>



    </Applications>







    </UserConfiguration>





  2. Подсистемы. Расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <Subsystems>:

    <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">



    <Subsystems>



    ..



    </Subsystems>



    ..



    </UserConfiguration>



    Каждую подсистему можно включить или отключить с помощью атрибута Enabled. Далее приводятся разные подсистемы и примеры использования.

    Расширения.

    Некоторые подсистемы (подсистемы расширений) управляют расширениями. Это следующие подсистемы: ярлыки, сопоставления типов файлов, протоколы URL-адресов, AppPaths, клиенты ПО и COM.

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

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

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



                                   <Shortcuts  Enabled="true">



                                               <Extensions>



                                                ...



                                               </Extensions>



                                   </Shortcuts>



                        В этом случае контент в манифесте будет игнорироваться.   



    2. Предположим, пользователь задает только следующее:



                                  <Shortcuts  Enabled="true"/>



                        В этом случае во время публикации содержимое файла манифеста будет интегрироваться.



    3. Предположим, пользователь задает следующее:



                                 <Shortcuts  Enabled="true">



                                               <Extensions/>



                                   </Shortcuts>



    В этом случае все ярлыки в манифесте будут игнорироваться. Никакие ярлыки не будут интегрироваться.

    Далее приводятся поддерживаемые подсистемы расширений.

    Ярлыки: эта подсистема управляет ярлыками, которые будут интегрированы в локальную систему. Далее приводится пример с двумя ярлыками:

    <Подсистемы>



    <Shortcuts Enabled="true">



      <Extensions>



        <Extension Category="AppV.Shortcut">



          <Shortcut>



            <File>[{Common Programs}]\Microsoft Contoso\Microsoft ContosoApp Filler 2010.lnk</File>



            <Target>[{PackageRoot}]\Contoso\ContosoApp.EXE</Target>



            <Icon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\inficon.exe</Icon>



            <Arguments />



            <WorkingDirectory />



            <AppUserModelId>ContosoApp.Filler.3</AppUserModelId>



            <Description>Заполните динамические формы для сбора и многократного использования данных в организации с помощью Microsoft ContosoApp.</Description>



            <Hotkey>0</Hotkey>



            <ShowCommand>1</ShowCommand>



            <ApplicationId>[{PackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>



          </Shortcut>



      </Extension>



      <Extension Category="AppV.Shortcut">



        <Shortcut>



          <File>[{AppData}]\Microsoft\Contoso\Recent\Templates.LNK</File>



          <Target>[{AppData}]\Microsoft\Templates</Target>



          <Icon />



          <Arguments />



          <WorkingDirectory />



          <AppUserModelId />



          <Description />



          <Hotkey>0</Hotkey>



          <ShowCommand>1</ShowCommand>



          <!-- Параметр ApplicationId не является обязательным -->



        </Shortcut>



      </Extension>



     </Extensions>



    </Shortcuts>



    Сопоставления типов файлов: эта подсистема сопоставляет типы файлов с программами для их открытия по умолчанию, а также настраивает контекстное меню. (Типы MIME также можно настраивать с помощью этой подсистемы.) Далее приводится пример сопоставления типов файлов.



    <FileTypeAssociations Enabled="true">



    <Extensions>



      <Extension Category="AppV.FileTypeAssociation">



        <FileTypeAssociation>



          <FileExtension MimeAssociation="true">



          <Name>.docm</Name>



          <ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>



          <PerceivedType>document</PerceivedType>



          <ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>



          <OpenWithList>



            <ApplicationName>wincontosowordpad.exe</ApplicationName>



          </OpenWithList>



         <OpenWithProgIds>



            <ProgId>contosowordpad.8</ProgId>



          </OpenWithProgIds>



          <ShellNew>



            <Command />



            <DataBinary />



            <DataText />



            <FileName />



            <NullFile>true</NullFile>



            <ItemName />



            <IconPath />



            <MenuText />



            <Handler />



          </ShellNew>



        </FileExtension>



        <ProgId>



           <Name>contosowordpad.DocumentMacroEnabled.12</Name>



            <DefaultIcon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\contosowordpadicon.exe,15</DefaultIcon>



            <Description>Blah Blah Blah</Description>



            <FriendlyTypeName>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,9182</FriendlyTypeName>



            <InfoTip>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,1424</InfoTip>



            <EditFlags>0</EditFlags>



            <ShellCommands>



              <DefaultCommand>Open</DefaultCommand>



              <ShellCommand>



                 <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>



                 <Name>Edit</Name>



                 <FriendlyName>&Edit</FriendlyName>



                 <CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /vu "%1"</CommandLine>



              </ShellCommand>



              </ShellCommand>



                <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>



                <Name>Open</Name>



                <FriendlyName>&Open</FriendlyName>



                <CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /n "%1"</CommandLine>



                <DropTargetClassId />



                <DdeExec>



                  <Application>mscontosowordpad</Application>



                  <Topic>ShellSystem</Topic>



                  <IfExec>[SHELLNOOP]</IfExec>



                  <DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>



                </DdeExec>



              </ShellCommand>



            </ShellCommands>



          </ProgId>



         </FileTypeAssociation>



       </Extension>



      </Extensions>



      </FileTypeAssociations>



    Протоколы URL-адресов. Эта подсистема управляет протоколами URL-адресов, интегрированными в локальный реестр клиентского компьютера, например, "mailto:".



    <URLProtocols Enabled="true">



    <Extensions>



    <Extension Category="AppV.URLProtocol">



    <URLProtocol>



      <Name>mailto</Name>



      <ApplicationURLProtocol>



      <DefaultIcon>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE,-9403</DefaultIcon>



      <EditFlags>2</EditFlags>



      <Description />



      <AppUserModelId />



      <FriendlyTypeName />



      <InfoTip />



    <SourceFilter />



      <ShellFolder />



      <WebNavigableCLSID />



      <ExplorerFlags>2</ExplorerFlags>



      <CLSID />



      <ShellCommands>



      <DefaultCommand>open</DefaultCommand>



      <ShellCommand>



      <ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>



      <Name>open</Name>



      <CommandLine>[{ProgramFilesX86}\Microsoft Contoso\Contoso\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>



      <DropTargetClassId />



      <FriendlyName />



      <Extended>0</Extended>



      <LegacyDisable>0</LegacyDisable>



      <SuppressionPolicy>2</SuppressionPolicy>



       <DdeExec>



      <NoActivateHandler />



      <Application>contosomail</Application>



      <Topic>ShellSystem</Topic>



      <IfExec>[SHELLNOOP]</IfExec>



      <DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>



      </DdeExec>



      </ShellCommand>



      </ShellCommands>



      </ApplicationURLProtocol>



      </URLProtocol>



      </Extension>



      </Extension>



      </URLProtocols>



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



    <SoftwareClients Enabled="true">



      <ClientConfiguration EmailEnabled="false" />



    </SoftwareClients>



    AppPaths: если приложение, например contoso.exe, зарегистрировано с именем apppath myapp, эта подсистема позволяет ввести в меню «Выполнить» команду myapp, которая будет открывать приложение contoso.exe.



    <AppPaths Enabled="true">



    <Extensions>



    <Extension Category="AppV.AppPath">



    <AppPath>



      <ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>



      <Name>contosomail.exe</Name>



      <ApplicationPath>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationPath>



      <PATHEnvironmentVariablePrefix />



      <CanAcceptUrl>false</CanAcceptUrl>



      <SaveUrl />



    </AppPath>



    </Extension>



    </Extensions>



    </AppPaths>



    COM: эта подсистема позволяет приложению регистрировать локальные серверы COM. Возможные режимы: Integration (Интеграция), Isolated (Изолирован) или Off (Выключен). Если выбран изолированный режим:



    <COM Mode="Isolated"/>



    Прочие параметры



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

    Виртуальные объекты ядра:

    <Objects Enabled="false" />



    Виртуальный реестр: используется, если требуется установить раздел реестра в виртуальном реестре в HKCU.



    <Registry Enabled="true">



    <Include>



    <Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\ABC">



    <Value Type="REG_SZ" Name="Bar" Data="NewValue" />



     </Key>



      <Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\EmptyKey" />



     </Include>



    <Delete>



      </Registry>



    Виртуальная файловая система



          <FileSystem Enabled="true" />



    Виртуальные шрифты



          <Fonts Enabled="false" />



    Переменные виртуальной среды



    <EnvironmentVariables Enabled="true">



    <Include>



           <Variable Name="UserPath" Value="%path%;%UserProfile%" />



           <Variable Name="UserLib" Value="%UserProfile%\ABC" />



           </Include>



          <Delete>



           <Variable Name="lib" />



            </Delete>



            </EnvironmentVariables>



    Виртуальные службы



          <Services Enabled="false" />

  3. UserScripts: сценарии могут использоваться для установки или изменения виртуальной среды, а также в качестве сценариев выполнения во время развертывания или удаления, до выполнения приложения, или они могут использоваться для «очистки» среды после завершения приложения. Пример сценария см. в демонстрационном файле конфигурации, полученном из Sequencer. В приведенном ниже разделе «Сценарии» содержатся дополнительные сведения о разных триггерах, которые могут использоваться.

  4. ManagingAuthority: может использоваться, когда на одном компьютере сосуществуют две версии пакета, одна из которых развернута в App-V 4.6, а вторая — в App-V 5.0. Чтобы разрешить vNext App-V принимать точки расширения App-V 4.6 для указанного пакета, введите в файле UserConfig следующее (где PackageName — это GUID пакета в App-V 4.6):

    <ManagingAuthority TakeoverExtensionPointsFrom46="true" PackageName="032630c0-b8e2-417c-acef-76fc5297fe81" />

Файл динамической конфигурации развертывания

Header — заголовок файла динамической конфигурации развертывания, который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">

PackageId — это то же значение, что и в файле манифеста.

Body — основной текст файла динамической конфигурации развертывания включает два следующих раздела.

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

  • Раздел конфигурации машины содержит сведения, которые могут быть настроены только для всей машины, а не для конкретного пользователя на этой машине. Например, разделы реестра HKEY_LOCAL_MACHINE в VFS.

<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">

<UserConfiguration>

  ..

</UserConfiguration>

<MachineConfiguration>

..

</MachineConfiguration>

..

</MachineConfiguration>

</DeploymentConfiguration>

Конфигурация пользователя — сведения о параметрах, которые предоставляются в разделе конфигурации пользователя файла конфигурации развертывания, см. в предыдущем разделе Файл динамической конфигурации пользователя.

Конфигурация машины — раздел конфигурации машины файла конфигурации развертывания используется для настройки сведений, которые могут быть установлены только для всей машины, а не для конкретного пользователя на этом компьютере. Например, разделы реестра HKEY_LOCAL_MACHINE в виртуальном реестре. В этом элементе могут находиться четыре подраздела.

  1. Подсистемы — расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <Подсистемы>:



    <MachineConfiguration>



      <Подсистемы>



      ..



      </Subsystems>



    ..



    </MachineConfiguration>



    В следующем разделе показаны разные подсистемы и примеры использования.

    Расширения



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



    Возможности приложения — это расширение используется программами по умолчанию в интерфейсе операционной системы Windows. Позволяет приложению регистрировать себя в качестве приложения, способного открывать файлы с определенными расширениями, в качестве претендента на ячейку интернет-браузера в меню «Пуск», в качестве приложения, способного открывать разные типы MIME Windows. Это расширение также делает виртуальное приложение видимым в пользовательском интерфейсе выбора программ по умолчанию.



    <ApplicationCapabilities Enabled="true">



      <Extensions>



       <Extension Category="AppV.ApplicationCapabilities">



        <ApplicationCapabilities>



         <ApplicationId>[{PackageRoot}]\LitView\LitViewBrowser.exe</ApplicationId>



         <Reference>



          <Name>LitView Browser</Name>



          <Path>SOFTWARE\LitView\Browser\Capabilities</Path>



         </Reference>



       <CapabilityGroup>



        <Capabilities>



         <Name>@[{ProgramFilesX86}]\LitView\LitViewBrowser.exe,-12345</Name>



         <Description>@[{ProgramFilesX86}]\LitView\LitViewBrowser.exe,-12346</Description>



         <Hidden>0</Hidden>



         <EMailSoftwareClient>Lit View E-Mail Client</EMailSoftwareClient>



         <FileAssociationList>



          <FileAssociation Extension=".htm" ProgID="LitViewHTML" />



          <FileAssociation Extension=".html" ProgID="LitViewHTML" />



          <FileAssociation Extension=".shtml" ProgID="LitViewHTML" />



         </FileAssociationList>



         <MIMEAssociationList>



          <MIMEAssociation Type="audio/mp3" ProgID="LitViewHTML" />



          <MIMEAssociation Type="audio/mpeg" ProgID="LitViewHTML" />



         </MIMEAssociationList>



        <URLAssociationList>



          <URLAssociation Scheme="http" ProgID="LitViewHTML.URL.http" />



         </URLAssociationList>



         </Capabilities>



      </CapabilityGroup>



       </ApplicationCapabilities>



      </Extension>



    </Extensions>



    </ApplicationCapabilities>



    Прочие параметры



    Помимо расширений, можно изменять другие подсистемы.



    Виртуальный реестр машины: используется, если требуется установить раздел реестра в виртуальном реестре в HKEY_Local_Machine.



    <Реестр>



    <Include>



      <Key Path="\REGISTRY\Machine\Software\ABC">



        <Value Type="REG_SZ" Name="Bar" Data="Baz" />



       </Key>



      <Key Path="\REGISTRY\Machine\Software\EmptyKey" />



     </Include>



    <Delete>



    </Registry>



    Виртуальные объекты ядра в машине



    <Objects>



    <NotIsolate>



       <Object Name="testObject" />



     </NotIsolate>



    </Objects>

  2. ProductSourceURLOptOut: указывает, может ли URL-адрес для пакета быть изменен глобально с помощью PackageSourceRoot (для поддержки сценариев с филиалами). По умолчанию этот параметр имеет значение false; изменение его значения начинает действовать при следующем запуске.  



    <MachineConfiguration>



      .. 



      <ProductSourceURLOptOut Enabled="true" />



      ..



    </MachineConfiguration>

  3. MachineScripts — пакет может быть настроен для выполнения сценариев во время развертывания, публикации или удаления. Пример сценария см. в демонстрационном файле конфигурации развертывания, созданном в Sequencer. В разделе «Сценарии» ниже содержатся дополнительные сведения о разных триггерах, которые могут использоваться.

  4. TerminateChildProcess — вы можете указать исполняемый файл приложения, дочерние процессы которого будут завершаться при завершении процесса выполнения приложения.



    <MachineConfiguration>



      ..   



      <TerminateChildProcesses>



        <Application Path="[{PackageRoot}]\Contoso\ContosoApp.EXE" />



        <Application Path="[{PackageRoot}]\LitView\LitViewBrowser.exe" />



        <Application Path="[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE" />



      </TerminateChildProcesses>



      ..



    </MachineConfiguration>

Скрипты

В следующей таблице приведены разные скрипты и контекст, в котором они могут выполняться.

 

Время выполнения скрипта Может задаваться в конфигурации развертывания Может задаваться в конфигурации пользователя Может выполняться в виртуальной среде пакета Может выполняться в контексте конкретного приложения Выполняется в контексте системы или пользователя: (конфигурация развертывания, конфигурация пользователя)

AddPackage

X

(СИСТЕМА, Н/Д)

PublishPackage

X

X

(СИСТЕМА, пользователь)

UnpublishPackage

X

X

(СИСТЕМА, пользователь)

RemovePackage

X

(СИСТЕМА, Н/Д)

StartProcess

X

X

X

X

(Пользователь, пользователь)

ExitProcess

X

X

X

(Пользователь, пользователь)

StartVirtualEnvironment

X

X

X

(Пользователь, пользователь)

TerminateVirtualEnvironment

X

X

(Пользователь, пользователь)

Использование нескольких сценариев в одном событии-триггере

App-V 5.1 поддерживает использование нескольких сценариев в одном событии-триггере для пакетов App-V, включая пакеты, преобразованные из App-V 4.6 в App-V 5.0 или более поздней версии. Чтобы включить использование нескольких сценариев, App-V 5.1 использует приложение запуска скрипта с именем ScriptRunner.exe, который устанавливается вместе с клиентом App-V.

Использование нескольких сценариев в одном событии-триггере

Каждый сценарий, который вы хотите выполнить, передайте в качестве аргумента в приложение ScriptRunner.exe. После этого приложение выполнит каждый сценарий отдельно с аргументами, которые вы укажете для каждого сценария. Используйте только один сценарий (ScriptRunner.exe) для каждого триггера.

noteПримечание
Рекомендуем сначала выполнить строки с несколькими сценариями из командной строки, чтобы убедиться в том, что все аргументы созданы правильно, и только потом добавлять их в файл конфигурации развертывания.

Пример сценария и описаний параметров

Используя следующий пример файла и таблицы, измените файл конфигурации развертывания или пользователя для добавления сценариев, которые требуется выполнить.

<MachineScripts>
 <AddPackage>
   <Path>ScriptRunner.exe</Path>
   <Arguments>
   -appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10
   -appvscript script2.vbs arg1 arg2
   -appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 –rollbackonerror
   </Arguments>
   <Wait timeout=”40” RollbackOnError=”true”/>
 </AddPackage>
</MachineScripts>

 

Параметр в файле примера Описание

<AddPackage>

Имя события-триггера, для которого выполняется сценарий, например добавление или публикация пакета.

<Path>ScriptRunner.exe</Path>

Средство запуска сценариев, которое устанавливается вместе с клиентом App-V.

noteПримечание
Хотя компонент ScriptRunner.exe установлен вместе с клиентом App-V, клиент App-V должен находиться в каталоге %path%, иначе ScriptRunner не запустится. Обычно ScriptRunner.exe находится в папке C:\Program Files\Microsoft Application Virtualization\Client.

<Arguments>
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10

-appvscript script2.vbs arg1 arg2

-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror
</Arguments>

-appvscript — маркер, представляющий фактический сценарий, который требуется запустить.

script1.exe — имя сценария, который требуется запустить.

arg1 arg2 — аргументы для сценария, который требуется запустить.

-appvscriptrunnerparameters — маркер, представляющий параметры выполнения для script1.exe

-wait — маркер, информирующий ScriptRunner о необходимости дождаться завершения script1.exe до перехода к следующему сценарию.

-timeout=x — маркер, информирующий ScriptRunner о необходимости остановить текущий сценарий через x секунд. Все указанные сценарии все равно будут работать.

-rollbackonerror — маркер, информирующий ScriptRunner о необходимости остановить все сценарии, которые еще не были выполнены, и выполнить откат ошибки клиенту App-V.

<Wait timeout=”40” RollbackOnError=”true”/>

Ожидает общего завершения ScriptRunner.exe.

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

Если какой-либо сценарий сообщает об ошибке, а для параметра rollbackonerror задано значение true, то ScriptRunner сообщит клиенту App-V об ошибке.

ScriptRunner выполнит любой сценарий, тип файла которого связан с приложением, установленным на компьютере. Если связанного приложения нет либо тип файла сценария не связан ни с одним приложением на компьютере, сценарий не запустится.

Создание файла динамической конфигурации с помощью файла манифеста App-V 5.1

Файл динамической конфигурации можно создать тремя способами: вручную, с помощью консоли управления App-V 5.1 или путем виртуализации пакета, который будет создан с двумя демонстрационными файлами.

Дополнительные сведения о создании этого файла с помощью консоли управления App-V 5.1 см. в разделе Создание пользовательского файла конфигурации с помощью консоли управления App-V 5.1.

Чтобы создать этот файл вручную, можно объединить сведения из предыдущих разделов в один файл. Рекомендуется использовать файлы, создаваемые в Sequencer.

Есть предложение для App-V?

Выдвигайте предложения и голосуйте за них здесь. Ответы на вопросы, возникающие при работе с App-V, можно найти на форуме TechNet по App-V.

См. также

-----
Дополнительные сведения о MDOP можно найти в библиотеке TechNet, статьях по устранению неполадок на вики-сайте TechNet или подписавшись на новости в Facebook или Twitter.
-----
Показ: