Changes
clarified some wording and added notes based on my recent operational experiences
for details-->
<install cmd=""%SOFTWARE%\AppV\%PKG_VERSION%\Client\appv_client_setup.exe" /ACCEPTEULA /MUOPTIN /q"/>
<!-- This looks like a good place to do configuration with
set-appvclientconfiguration, but without a check condition
to verify your configuration is in place, it won't actually
work because App-V isn't ready for you to do this until
after a restart. -->
<upgrade include="install"/>
Once the client is installed, it can operate with an App-V server or in [http://blogs.technet.com/b/virtualvibes/archive/2013/03/12/app-v-5-0-standalone-mode-adding-and-publishing-a-package.aspx stand-alone mode]. With a server, there is no WPKG involvement once the client has been installed and configured. Without an App-V server, WPKG either delivers MSI packages or executes PowerShell scripts to inform the client of new App-V packages. Don't mix MSI and PowerShell deployment: pick one for your environment and stick with it.
PowerShell deployment works well with WPKG.
== Deployment with PowerShell ==
=== Package template ===
This template will work for a typical App-V package. Change the ID, the name and the two <code>PKG_SHORTNAME</code> and <code>PKG_PATH</code> variables.
<source lang="xml">
<depends package-id="appv_client" />
<!-- If your package works on all architectures: -->
<variable name="PKG_PATH" value="%SOFTWARE%\AppV\packages\MyPackage\MyPackage.appv" />
<!-- If your package doesn't: -->
<!--
<variable name="PKG_PATH" value="%SOFTWARE%\AppV\packages\MyPackage_32\MyPackage.appv" architecture="x86"/>
<variable name="PKG_PATH" value="%SOFTWARE%\AppV\packages\MyPackage_64\MyPackage.appv" architecture="x64"/>
-->
<variable name="PKG_SHORTNAME" value="MyPackage" />
<install cmd="powershell -executionpolicy bypass -noprofile -command "&Import-Module AppvClient; if (add-appvclientpackage -path $env:PKG_PATH | publish-appvclientpackage -Global | mount-appvclientpackage ) { exit 0 } else { exit 1 }"" condition="exitcodeequalto" />
<!-- Unpublishing may be overkill -->
<upgrade cmd="powershell -executionpolicy bypass -noprofile -command "&Import-Module AppvClient; unpublish-appvclientpackage -Global $env:PKG_SHORTNAME; remove-appvclientpackage $env:PKG_SHORTNAME" >
<exit code="any"/>