Nothing like this exists in C ++. Using side by side, the manifest technically resolves this, but you would know that, since you typed the version number in the manifest of your C # program.
The more likely explanation is that you actually created the C ++ / CLI assembly. Many programmers confuse C ++ / CLI with C ++. A slight mistake, because this language allows you to use your own C ++ code. But it actually compiles into a mixed-mode assembly, an assembly containing both IL and native code. A regular check of the CLR version is performed for such an assembly, when the CLR loads it, it is only happy with the exact version. Strong DLL Hell Measure.
And the usual CLR version interrupt option is available to circumvent this check, the <bindingRedirect> element in the app.exe.config file. As well as controlling the version number of the assembly, how do you do this for your C # code, so this is optional.
The easiest way to verify this assumption is to use Project + Add Reference and select a DLL. If this does not cause any complaint, and the assembly is added to the node link of your C # project, then you know that this is a normal .NET assembly. Remember to take advantage of this, no pinworm is required.
source share