Assimp32.dll and Assimp64.dll have dependencies to MSVCP110.DLL and MSVCR110.DLL

Issue #11 resolved
ActuallyaDeviloper created an issue

Both dll files included in the repository and the NuGet package are currently dynamically linked to the CRT. This is a problem because the required MSVCP110.DLL and MSVCR110.DLL files can't be easily deployed application locally since Assimp32.dll and Assimp64.dll require different CRT dlls with the same name.

To properly solve the problem we would have to provide our own set of Assimp dlls that replace Assimp32.dll and Assimp64.dll in a post build step, otherwise all our users would need to separately install the Microsoft Visual C++ Redistributable 2012 on every computer specifically for Assimp functions.

I don't think this depencency is intended and I also don't think that dynamically linking the CRT has any benefits here for most users. The size difference for Assimp32.dll file is only 418 KB in my build configuration. Therefore I suggest to include statically CRT linked Assimp dll files in future versions of the NuGet package instead.

If Assimp is built from the C++ sources, the easiest way to get statically linked dll files is to set the "Runtime Library" to "Multi-threaded (/MT)" in Visual Studio for all C++ projects after running CMake.

Comments (3)

  1. Nicholas Woodfield repo owner

    Those DLLs were harvested from the Assimp release we last targeted. I don't think the native project provides prebuilt binaries anymore...plus for .net standard I'm planning on providing pre-built binaries for mac/linux. So I'll look into this.

  2. Nicholas Woodfield repo owner

    FYI since I'm updating the library to target the latest Assimp release (4.1.0), I rebuilt the binaries using your suggestion. Can confirm via dependency walker I don't see the two MSVC* dependencies.

  3. Log in to comment