How do I set the path to a DLL file in Visual Studio?
Solution 1
- Go to project properties (Alt+F7)
- Under Debugging, look to the right
- There's an Environment field.
- Add your relative path there (relative to vcproj folder) i.e. ..\some-framework\lib by appending
PATH=%PATH%;$(ProjectDir)\some-framework\lib
or prepending to the pathPATH=C:\some-framework\lib;%PATH%
- Hit F5 (debug) again and it should work.
Solution 2
Go through project properties -> Reference Paths
Then add folder with DLL's
Solution 3
The search path that the loader uses when you call LoadLibrary() can be altered by using the SetDllDirectory() function. So you could just call this and add the path to your dependency before you load it.
See also DLL Search Order.
Solution 4
In your Project properties(Right click on project, click on property button) ▶ Configuration Properties ▶ Build Events ▶ Post Build Events ▶ Command Line.
Edit and add one instruction to command line. for example copy botan.dll from source path to location where is being executed the program.
copy /Y "$(SolutionDir)ProjectDirs\x64\Botan\lib\botan.dll" "$(TargetDir)"
Solution 5
Another possibility would be to set the Working Directory
under the debugging options to be the directory that has that DLL.
Edit: I was going to mention using a batch file to start Visual Studio (and set the PATH variable in the batch file). So then did a bit of searching and see that this exact same question was asked not long ago in this post. The answer suggests the batch file option as well as project settings that apparently may do the job (I did not test it).
Related videos on Youtube
sivabudh
First, I'm a dreamer who engineers and innovates. Second, I CEO at CODIUM and 1000C startups.
Updated on January 15, 2021Comments
-
sivabudh over 3 years
I developed an application that depends on a DLL file. When I debug my application, the applicationwould complain that:
"This application has failed to start because xxx.dll was not found."
So I have to copy the DLL file into the same directory as my .vcproj file.
Is there a way to set the project to look for the DLL file in (preferably) some relative path or (not preferred) some absolute path?
Similar concept to how we set include and library path in the project settings.
I mean when I debug my application (hitting F5) the above error would pop up.
-
sivabudh over 14 yearswhat if I depend on 2 dlls, each one lives in its own directory? (i simplified my question above)
-
Mark Wilkins over 14 yearsI don't think it would be possible to make this solution work for more than a single directory.
-
Brent Faust over 11 yearsThe Environment field takes NAME=VALUE semicolon-delimited pairs. Append to the PATH variable to have the VS Debugger search additional locations for DLLs: PATH=%PATH%;$(ProjectDir)lib
-
durron597 over 8 yearsPlease don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, tailor your answers to the question.
-
Rathma over 6 yearsby far the best answer :)
-
Narek over 6 yearsIs there a similar way to do for Release build too?
-
Filip Bártek about 6 yearsThis doesn't seem to be available in Visual Studio 2015 in a C++ project. Which combination of Visual Studio version and project type supports this option?
-
Foster Boondoggle about 6 yearsI needed to add the dll path to the $(LibraryPath) variable (or include it in the list under Library Directories on the Config Properties->VC++ Directories setting).
-
Joma almost 5 yearsI have no idea if it is right to do that, but the IDE gives me that option and it has been useful, I think it's a good option if I want to copy all the necessary files to another folder to distribute your program. Simple spell but effective. Here in this question there are different answers to reach the same end. But I use this option and avoid many headaches.
-
rjferguson almost 5 yearsThe other options didn't work for me, only this one, but it seems like the others should be the right way to go.
-
Slipp D. Thompson over 4 yearsAlt-F7 brings up a temporary dialog box listing the Active Tool Windows and Active Files (Visual Studio 2017 Community). Is there no way to get to project properties though an old-fashioned menu command? I can't seem to find it.
-
Jenix over 4 years@SlippD.Thompson Yeah, you're right. But you can achieve the same thing using Alt + p, p instead.
-
Jenix over 4 yearsOP's question was about C++ but this answer is for C#.
-
Slipp D. Thompson over 4 years@Jenix Also, right-clicking on the project and choosing Properties works. When I posted my question 2 weeks ago, I was using Visual Studio for the first time in a decade on a time-crunched project. I guess my larger point here is that hotkeys are great for power users, but shouldn't be listed as the primary way to do something for novice/unfamiliar users performing rudimentary tasks— the actual menu or button or contextual menu (in this case) should be used. Hotkeys can be learned later.
-
Jenix over 4 years@SlippD.Thompson Ah, reading your comment again, I think I misunderstood what you meant. Yes, I agree. But at least, there are some hotkeys never changed in Visual Studio, and 'Alt + p, p' is one of them. It was there along with 'Alt + F7', which means now something else as you know. Also, 'Alt + p, p' just means 'Project menu > * Properties'.
-
M_N1 about 4 yearsThe "\" sign should be removed after
$(ProjectDir)
(at least in Visual Studio 2019) -
Ruli over 3 yearsIt would be good to add name of the extension into the answer.
-
dinozaver over 3 yearsI agree, but as i wrote before, i just installed what visual studio recomended. It was about 4GB of data and since i did not know what was truly neccesary i just installed all of them and did not look closer into every item.
-
Adrian W about 3 yearslooks like the DLL had a dependency (i.e. requires another DLL) which was not present or at least not on your PATH until you installed VC++.
-
amir kian over 2 yearsI need to use diffrent dlls in debug mode for a specific dll , how can it possible?
-
Ak01 over 2 yearsHow can I edit this for premake?
-
jojo_Aero_smith_the_dummy about 2 yearshow do you set multiple path?