Deploying packages to only the current user |
By default, user interface extension packages created by the PackageBuilder tool install the extensions for all users of the computer and require administrative permissions on the computer. For some organizations, this is undesireable because the users are not granted administrative permissions to their computers. Consequently, the installation will fail, which requires time-consuming intervention by an IT support person to resolve.
The PackageBuilder supports a command line switch -deployperuser to prevent this problem. The switch installs the extensions differently than for all users of the computer:
- Extensions are installed in the user's Application Data folder instead of in a sub-folder of the Meridian program folder, for example, C:\Documents and Settings\UserName\Local Settings\Application Data.
- Extensions are registered for COM interop only for the current user.
However, this solution has some disadvantages:
- Installing new versions of the extensions can fail if the extensions were originally installed for all users (without the -deployperuser switch) and the new version is installed for only the current user (with the -deployperuser switch) or vice versa.
- If the extensions are installed more than once on the same computer for multiple user accounts, uninstalling the extensions from one account will remove any files that reside in a shared location with the other accounts, rendering the extensions unusable by any account.
- A dependent component that executes on the server computer, such as a compiled VBScript support library will fail if it was not installed under the user account used by the EDM Server service (by default, the local SYSTEM account). For example, a VBScript call to the AMCreateObject function with BCScriptCallableObject object and the OnServer parameter set to True will fail. This isn't a problem for user interface extensions that execute entirely on the client computer.
The first two disadvantes can be avoided if the extensions are only and always installed using the -deployperuser switch and files that reside in folders that are shared between user accounts are not copied or modified. If applicable, the last disadvantage can be prevented by installing server-side executing components with the EDM Server service account, which is typically a one-time only task.
To package a .NET extension library for deployment to only the current user of a computer:
- Run the PackageBuilder tool by executing the following command where “PathToExtensionDLL” is the full path to the DLL file created by your project:
“%BCMNETSDK%\Deployment\Extension\PackageBuilder.exe” -deployperuser “PathToExtensionDLL” Note |
---|
If you have configured Visual Studio to automatically package an extension every time you build it as described in "Packaging a .NET user interface extension," you must modify the Post-build Event Command Line option accordingly. |
See Also