To Documentation Index

TMEdit  The Ultimate App-V Package Editor


Menu: Package Settings

The Package Settings Menu display combines several of the advanced package properties that can be set in the sequencer, along with additional settings not exposed by the sequencer.  Some of these settings are included for clarification (even though you can't change them), and others have additional setting capabilities that are not exposed in the Sequencer GUI.

You can view the Package Name and GUIDs, and version string. You may modify the Publisher and Description fields. The Publisher field is not used by the product and is only carried inside the embedded AppXManifest XML file. The Descriptor field is sometimes used by packagers to store notes about the package.

COW Rules: There is a single checkbox on the sequencer Advanced tab that refers to full write access for VFS files.  The description in the sequencer is incorrect, so we have broken down the rules that apply to what happens when a user running the virtual application tries to make a change to one of these files.  Depending on these rules, the write might be blocked, or it might be redirected to a save location.  We refer to this as "Copy-on-Write", or COW for short.  The first two rules are hard set by the client and may not be overwritten.  We include them only to clarify.  The last rule is (we think) a better description of the Sequencer checkbox.  Also off by default in the sequencer, we find most customers prefer that this checkbox is enabled.

COM Rules: This section makes the full power of the COM options present in the XML available to you.  There are two aspects to the COM rules implemented by the client.

COM Renaming: You might have COM objects that are captured in your package that have the same GUID as that of a native component.  But your GUID might be pointing to a different version component.  So, by default, App-V will dynamically spoof the COM GUID, effectively renaming it.  This can be disabled by selecting the none option.   If either None, or Isolated, is selected, then publishing of COM GUIDs externally during the App-V publishing is not available.  If you need to expose the COM objects for software running outside of the virtual environment, selecting Integrated is required.  Doing so enables the publishing controls that follow.

COM Publishing: If the Renaming setting is set to Integrated, you can choose which types of COM objects are exposed.  Microsoft believes that out-of-process objects are safer to expose than in-process.  We're not sure that there is evidence of that.  What we do know is that when the COM object is instantiated by something outside of the virtual environment (VE), it must be able to run without access to the VE.  Most importantly, this means no virtual registry is available to it. That isn't an in-process or out-of-process thing.  So if you have a problem with external software accessing the COM of your package, you either get the external thing to run inside the VE (Connection Group or Run Virtual), or you try these settings.

The setting on the advanced tab of the Sequencer GUI for COM Objects sets the renaming to integrated and publishing to out-of-process only.

Undocumented Rules: There is a setting in the XML that is undocumented, and used by the Office365 App-V packages created using the ODT. You probably should not use it expect for those packages.  We think that it is just the COM integrated mode equivalent, but it likely does something else and we don't know what that might be.  If you are unable to fix an integration like issue via other means, this setting might just work for you.  Who knows?

Object Integration:  This section makes the full power of Object renaming options present in the XML available to you. The sequencer has a single checkbox to integrate object names.  By default, App-V will spoof the name of all named kernel objects in your package.  This solves conflict issues with natively installed versions of the app, but also helps to make non-conformant apps multi-instance, multi-user, multi-session capable. The client has a registry list of things not to rename, as there are OS components that need the real names used, but this option in the Sequencer GUI will disable all of the renames for the package.  In the XML this setting actually just enables an add-on exclusion list for the package, and adds a single entry of "*" (the wildcard character to match any name) to the add-on list.

There is an app that has 5 different named objects, and we discovered that we needed to exclude two of them to solve one issue, but excluding all 5 caused a different issue.  We can add the two items to the client registry of all clients, but we can also just fix up the package by requesting the integration and adding the two objects by name here. 

NOTE: Object names can be obtained by running the virtual application with full renaming and using Process Explorer and showing the lower-pane in handles view.  Look for names starting with "sg" and a hex string.  The hex string is a runtime randomly generated string representing the virtual environment, and what follows is the original object name.

Deployment Restrictions: Don't user this.  Yeah, its in the product so we expose it here, but use something else to control distribution of packages.  Those that rely on this feature of the product eventually learn to regret that they did.