.NET Deployment Considerations (Magic xpa 3.x)
If you use assemblies from a certain version of .NET framework, you must make sure that the client also has that version of .NET framework installed.
When running an application from your clients' machines, if a program requires an assembly, the assembly will first be loaded from the Global Assembly Cache (GAC).
If the assembly is not found on the GAC, then if the assembly was required by a non-Offline program, the RC module will automatically copy the assembly from the server to the client.
The location on the server side is the location written in the .NET Assembly Properties in the CRR. It is recommended to use logical names there, if you need to have different locations for development and deployment.
Note that dependency assemblies, that is assemblies that are required by another assembly, will not be downloaded to the client if they do not exist in the CRR. So, if you use an assembly that has dependency assemblies, it is recommended to define this assemblies in the CRR as well, so that they will also be downloaded to the client when required.
3rd-party .NET assemblies defined in the CRR will not be downloaded to the client automatically if used in an Offline program.
If your Offline programs use 3rd-party .NET assemblies, you should either install them on the client or use the ServerFileToClient function to copy the assembly to the client on initial startup.