Ask Your Question

Package received by NuGet does not contain dll-files

asked 2014-02-18 02:02:25 -0600

Jupiter gravatar image

updated 2014-02-18 07:50:00 -0600

I have installed OpenCV 2.4.8 package for a C++ VS project using NuGet package manager. The problem is that the package does not contain any dll-libraries nor any lib files. Folders x64 and x86 are missing from OpenCV.2.4.8\Build in the package as compared to a stand-along installation of OpenCV 2.4.8.

The strange thing is that different versions of package OpenCV for C++ are shipped with different folder structure. Some include dlls and libs, other do not.

OpenCV 2.3.1 is shipped as two packages: OpenCV_binaries.2.3.1 and OpenCV_headers.2.3.1, the former including all libraries, the latter including header files.

OpenCV 2.4.6-nuget has folders bin and include with libraries and header files respectively.

OpenCV 2.4.6 is shipped as two packages: OpenCV.2.4.6 and OpenCV.redist.2.4.6, the former containing lib folder, the latter containing bin folder. Lib and dll files are present.

OpenCV 2.4.7 and OpenCV 2.4.8 are shipped without bin or lib folder. So lib and dll files are missing!!!

edit retag flag offensive close merge delete


Actually it is pretty simple. Go to the download page. For each system there is a complete prebuilt package available. If you want the latest sourcecode, retrieve it from the GitHub account and recompile openCV yourself. Never trust unofficial packages from third party managers. They will never work as good as the original ones.

StevenPuttemans gravatar imageStevenPuttemans ( 2014-02-18 07:52:14 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2014-03-26 21:33:56 -0600

glopes gravatar image

Actually, the OpenCV NuGet package should work just fine. The reason you don't see any DLLs when you first download the package is because OpenCV NuGet downloads them by demand at build time using the strategy adopted by CoApp.

This avoids having to download all possible combinations of platform/architecture when you just want to build vc11-x86. This helps ameliorate a bit the phenomenon of having binary distributions with hundreds of megabytes.

The way the package works is you just install it onto a VC++ project and hit build. It should work for Visual Studio 2012 and 2013. The advantage of the NuGet package is it automatically configures include and lib folders and also deploys the right versions of the binaries to the output directory of your currently specified target. It is to my knowledge the closest thing to a plug-and-play experience you can have on Windows and Visual Studio.

edit flag offensive delete link more

Question Tools


Asked: 2014-02-18 02:02:25 -0600

Seen: 2,280 times

Last updated: Mar 26 '14