Reputation: 331
i have received a wrapper class for a C++ unmanaged code, which i need to add to my web project and call through c#.
1) in a c# desktop application project
When i'm adding references i can only add the wrapper dll. cannot add the unmanaged dll. i think this is not a issue. Then when i'm buliding and running it gives an error saying
Could not load file or assembly 'AskCmnWrapper.DLL' or one of its dependencies. The specified module could not be found.
So then i manually copied my unmanaged dll to the bin folder . It worked fine
2) in a c# web application
i got the same above issue. manually copied my unmanaged dll to the bin folder when i'm trying to run it with iis express (through vs2012) . but it's not working. Is there any special configurations to be made when running unmanaged dll/wrappers in web applications?
please guide me. thank you.
Upvotes: 1
Views: 703
Reputation: 3833
Chances are you are missing some of the required C++ redistributables or other dependencies. Run Dependendy Walker on your native DLL to see which ones are are missing.
Ideally, you want to make a C++/CLI project which contains the source code of the native library you are wrapping, and write a managed C++/CLI wrapper on top of it, in the same project. This way only the "wrapper" (containing the native code) will be required in your folder.
If you don't have the source, and you can not statically link the library into your C++/CLI project, you will need to have both the wrapper DLL and the native DLL in the directory at run time, as that's when they will be linked.
Upvotes: 2