View Full Version : App Isolation Questions

08-09-2002, 08:55 AM
there are some things that I am struggling to understand with App Isolation

If I isolate all system files locally on XP then can I be assured that all the legacy apps will only ever load the local copies of system files?
In practice, will that put a huge strain on hard disk and memory resources?

How do I know which files need isolating?
Is there a way of linking with ConflictSolver so that I can mark the troublesome files that I have identified as needing isolation?

When should I create a Global Assembly?
How is that different to installing the file to [SystemFolder]?

I remember reading once about how Win2k, 98se & ME only supported IsolatedComponents if the component was registered with relative paths. Does the wizard ensure this?

I read somewhere else that the isolation only worked if the dll stored its temporary data in memory, because two different versions of a dll both reading the same registry key or file can't coexist. In practice, is this a common problem?

08-14-2002, 11:00 AM
are my questions too tough?
does anyone use this tool?
would it have been better to use different threads for each question?
is this one for InstallShield support?

please help me. I could really do with some advice.


08-20-2002, 01:24 PM
Yes if you isolate system files you can be assured that local copies of your system files are loaded when you launch your application. This is what Application Isolation is all about. You can rename one of your isolated files and then try to launch your application.

I don't think there will be any huge strain on memory. Windows XP should take care of it. But definitely you will need bigger hard disk as you will be installing more files (shared components) on your machine because of isolation.

When you use AIW (Application Isolation Wizard), this wizard will statically scan each exe in your package and find all the dependencies. You can use the Static or Dynamic Scanner shipped with Developer in AdminStudio to find the dependencies on an exe file.

Right Now there is no way of linking AIW with ConflictSolver. You will have to manually go through each file that is troublesome and then isolate it.

If you think that the assembly you are going to create can be shared across all the other products in your organization and any change in this assemblies should be reflected across the entire product you can create Global Assembly. When you create a Global Assembly you will need to sign this assembly with 2048 bit certificate because of security and GlobalAssemblies always go in WinSXS folder.

Global Assemblies in WinSxS folder are not registered globally on the system, but they are globally available to any application that specifies a dependency on the assembly in a manifest file.

On operating systems earlier than Windows XP, shared assemblies are usually installed in the Windows system folder and registered globally. The latest installed version is available to any application that binds to it.

For Win2K, 98SE and ME, AIW makes sure that when installation is done for every application a .local is created in the application folder. Now when user launches the application the presence of .local file tells Windows loader to look for DLLs and other dependencies in the application folder first before it goes and search in the standard path.
Now the problem with .local isolation is that for COM Servers the information still lies in the registry. This information can be changed by some other application and this can break or affect your application. So .local isolation is not really true isolation.

On XP however all the information including COM information is stored in the assembly. As a result no other application can change it. So your application will never be affected by installation/un-installation of any other app.