When I create pylon applications for Basler cameras on my development machine, my Visual Studio application runs fine. On the customer's equipment, however, my application fails to start due to configuration errors. What's wrong with my application?
As you may know, applications created with Microsoft Visual Studio need some Microsoft runtime libraries available to function properly (some dependencies, for example, are the CRT, MFC, and ATL runtime libraries).
With Visual Studio 6, the only thing you needed to do to distribute these libraries (DLLs) was to simply place a copy of them in the same folder as your application's executable.
With Visual Studio 2003.NET, Microsoft introduced the concept of "assemblies". Assemblies contain all of the required runtime libraries as well as something called "manifest" files. Manifest files contain information about which version of which runtime library is explicitly needed by the application. The MSDN includes a lot of information about assemblies and about deployment of applications created with VS 2003.NET.
The simplest way to redistribute the Microsoft runtime libraries is by providing the so-called “vcredist_x86.exe” (for x86 OS) or “vcredist_x64.exe” (for x64 OS) redistribution package together with your application.
For Visual Studio 2005 you will find the “vcredist_x86.exe” within the following program folder, for example:
<PROGRAM FILES>\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86
When “vcredist_x86.exe” is executed on the target machine, all required Microsoft runtime assemblies will be installed in the "global assembly cache" (the WinSXS folder). Your application will then be able to find all of the required C++ runtime libraries, and it will start properly.
Q: Fine, this works for release builds, but I need to deploy a debug build of my application. What should I do?
A: All required debug versions of the runtime libraries come with Visual Studio. According to the Microsoft Visual Studio license agreement, redistribution of the debug versions of the VS runtime libraries is not allowed. To run a debug build of your application, the target machine must have the same version of Visual Studio installed that you used when developing the application.
In newer Visual Studio versions, e.g. Visual Studio 2012/ 2013/ 2015, the redistributable packages are not included in the installation folder. To download the given redistributable package, refer to the following link: