I have an EXE which was built from C source code using Visual Studio 2008. The EXE therefore contains a manifest which includes the following:
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
I would like to distribute this EXE so that it will run on any Windows XP or newer system, whether Microsoft.VC90.CRT
has been installed or not. Documentation (e.g. private assemblies) states that this can be done by including the following files alongside the EXE:
Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
Microsoft.VC90.CRT\msvcr90.dll
Microsoft.VC90.CRT\msvcp90.dll
Microsoft.VC90.CRT\msvcm90.dll
Is it necessary to include all 4 of these files? Because my source code is pure C, my EXE is dependent only on msvcr90.dll
. On first glance it seems I should be able to do without msvcp90.dll
and msvcm90.dll
.
Is it OK to distribute only msvcr90.dll
(and Microsoft.VC90.CRT.manifest
)? Are there any downsides to doing so?