This screen allows you to select options which control the AppDomain and Assembly load, process, and management.
The options are described below:
As part of it's normal operation, BitDiffer must load external assemblies in order to compare them. The .NET loader will not allow loading of 2 assemblies with the same strong name into the same AppDomain (referred to as a "version conflict" in this documentation), but BitDiffer requires this functionality to be useful. Therefore, AppDomains must be created for loading assemblies. Loading and unloading AppDomains is an expensive operation, so this isolation level option lets you control the tradeoff between performance and assembly version conflict risk. The available levels are:
Assemblies can be loaded into different AppDomain contexts. The reflection context uses the xxxReflectionOnly API and provides access only to the assembly metadata. The execution context load the assembly using the direct load API without restriction.
Changing this option may yield slightly different performances based on your scenario. In general, it is appropriate for BitDiffer to load assemblies using the reflection context due to the nature of the work it is doing.
When an assembly is loaded for analysis and it's types and methods are inspected, any referenced assemblies must also be loaded. This option controls where assemblies are searched in order to resolve a reference. Prefer Local Folder will search first in the same folder of the assembly for the reference. Prefer GAC will search first in the GAC for the assembly reference.
Prefer Local Folder emulates the normal .NET assembly resolution process and so is probably the appropriate choice unless you have a specific reason to change it.
BitDiffer can perform the analysis work of extracting metadata from assemblies in parallel. This has the potential to greatly speed up performance on appropriate CPU architectures. If you have a dual or multi-core CPU (or multiple CPUs), select the multithread option to take advantage of all CPU cores. If you have a one single-core CPU, the multithread option will create more context switches and possibly hinder performance. In this case, select the singlethread option.