Visual studio как задать путь
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.
7 Answers 7
- 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 path PATH=C:\some-framework\lib;%PATH%
- Hit F5 (debug) again and it should work.
The 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
Alt-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.
@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'.
Go through project properties -> Reference Paths
Then add folder with DLL's
Please 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.
This 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?
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.
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).
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.
I 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.
The other options didn't work for me, only this one, but it seems like the others should be the right way to go.
I had the same problem and my problem had nothing to do with paths. One of my dll-s was written in c++ and it turnes out that if your visual studio doesn't know how to open a dll file it will say that it did not find it. What i did was locate which dll it did not find, than searched for that dll in my directories and opened it in a separate visual studio window. When trying to navigate through Solution explorer of that project, visual studio said that it cannot show what is inside and that i need some extra extensions, so that it can open those files. Surely enough, after installing the recomended extension (in my case something to do with c++) the
"This application has failed to start because xxx.dll was not found."
error miraculously dissapeared.
I 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.
looks 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++.
Вы можете уменьшить место, занимаемое установкой Visual Studio на системном диске, изменив расположение файлов. В частности, можно использовать другое расположение для кэша загрузки и общих компонентов, инструментов и пакетов SDK.
Вы можете уменьшить место, занимаемое установкой Visual Studio на системном диске, изменив расположение ее файлов. В частности, можно использовать другое расположение для кэша загрузки, общих компонентов, пакетов SDK и файлов средств.
Новая возможность в версии 15.7. Вы можете уменьшить место, занимаемое установкой Visual Studio на системном диске, изменив расположение ее файлов. В частности, можно использовать другое расположение для кэша загрузки, общих компонентов, пакетов SDK и файлов средств.
Некоторые средства и пакеты SDK имеют другие правила расположения установки. Эти средства и пакеты SDK устанавливаются на системном диске, даже если вы выбрали другое расположение.
Вы готовы начать работу? Вот как это сделать.
При установке Visual Studio откройте вкладку Расположения установки.
В разделе Visual Studio IDE примите значение по умолчанию. Visual Studio устанавливает основной продукт и файлы, относящиеся к этой версии Visual Studio.
В разделе Кэш загрузки решите, следует ли сохранить кэш загрузки, а затем выберите место для его хранения.
Установите или снимите флажок Сохранить кэш скачивания после установки.
Если вы решили не сохранять кэш загрузки, это расположение будет использоваться временно. Это действие не повлияет на файлы из предыдущей установки и не приведет к их удалению.
Укажите диск, где будут храниться файлы установки и манифесты из кэша загрузки.
Например, при выборе рабочей нагрузки "Разработка классических приложений на C++" потребуется 1,58 ГБ пространства на системном диске, но после завершения установки этот объем будет освобожден.
Это расположение задается во время первой установки. Его невозможно изменить позже в пользовательском интерфейсе установщика. Вместо этого вы можете использовать параметры командной строки для перемещения кэша загрузки.
В разделе Общие компоненты, инструменты и пакеты SDK укажите диск, где вы хотите сохранить файлы, используемые совместно параллельными установками Visual Studio. Пакеты SDK и инструменты также сохраняются в этом каталоге.
При установке Visual Studio откройте вкладку Расположения установки.
В разделе Visual Studio IDE примите значение по умолчанию. Visual Studio устанавливает основной продукт и файлы, относящиеся к этой версии Visual Studio.
В разделе Кэш загрузки решите, следует ли сохранить кэш загрузки, а затем выберите место для его хранения.
Установите или снимите флажок Сохранить кэш скачивания после установки.
Если вы решили не сохранять кэш загрузки, это расположение будет использоваться временно. Это действие не повлияет на файлы из предыдущей установки и не приведет к их удалению.
Укажите диск, где будут храниться файлы установки и манифесты из кэша загрузки.
Например, при выборе рабочей нагрузки "Разработка классических приложений на C++" потребуется 1,58 ГБ пространства на системном диске, но после завершения установки этот объем будет освобожден.
Это расположение задается во время первой установки. Его невозможно изменить позже в пользовательском интерфейсе установщика. Вместо этого вы можете использовать параметры командной строки для перемещения кэша загрузки.
В разделе Общие компоненты, средства и пакеты SDK обратите внимание, что используется тот же диск, который вы выбрали в разделе "Загрузка кэша". Каталог \Microsoft\VisualStudio\Shared находится там, где Visual Studio сохраняет файлы, которые являются общими для параллельных установок Visual Studio. Пакеты SDK и инструменты также сохраняются в этом каталоге.
При установке Visual Studio откройте вкладку Расположения установки.
В разделе Visual Studio IDE примите значение по умолчанию. Visual Studio устанавливает основной продукт и файлы, относящиеся к этой версии Visual Studio.
Вы можете выбрать другое расположение только в том случае, если вы устанавливаете Visual Studio впервые. Если вы уже установили ее и хотите изменить расположение, необходимо удалить Visual Studio, а затем переустановить ее.
В разделе Кэш загрузки решите, следует ли сохранить кэш загрузки, а затем выберите место для хранения его файлов.
Установите или снимите флажок Сохранить кэш скачивания после установки.
Если вы решили не сохранять кэш загрузки, это расположение будет использоваться временно. Это действие не повлияет на файлы из предыдущей установки и не приведет к их удалению.
Например, если выбрать рабочую нагрузку "Разработка классических приложений на C++", то для расположения кэша загрузки будет временно необходим объем 2,11 ГБ. После завершения установки скачанные файлы кэша удаляются, оставляя только метаданные пакета.
Укажите путь к папке, включая диск, где будут храниться файлы установки и манифесты из кэша загрузки.
Вы можете выбрать другое расположение только в том случае, если вы устанавливаете Visual Studio впервые. Если вы уже установили ее и хотите изменить расположение, необходимо удалить Visual Studio, а затем переустановить ее.
В разделе Общие компоненты, инструменты и пакеты SDK укажите папку, где вы хотите сохранить файлы, используемые совместно параллельными установками Visual Studio. Пакеты SDK и инструменты также сохраняются в этом каталоге.
Если вы уже установили Visual Studio на компьютере, вы не сможете изменить путь к общим компонентам, инструментам и пакетам SDK, этот пункт будет неактивен.
Поддержка или устранение неполадок
Иногда возникают проблемы. Если установить Visual Studio не удается, воспользуйтесь пошаговыми указаниями в статье Устранение неполадок при установке и обновлении Visual Studio.
How do I set a path for DLL files to be searched in Visual Studio for a particular project alone?
Now I am setting it in the environment path variable, but I would like better control over this.
Do you mean that you're attempting to run something in the debugger, and because the DLLs aren't in PATH, it's not finding them?
5 Answers 5
Search MSDN for "How to: Set Environment Variables for Projects". (It's Project>Properties>Configuration Properties>Debugging "Environment" and "Merge Environment" properties for those who are in a rush.)
The syntax is NAME=VALUE and macros can be used (for example, $(OutDir)).
For example, to prepend C:\Windows\Temp to the PATH:
Similarly, to append $(TargetDir)\DLLS to the PATH:
You have a couple of options:
- You can add the path to the DLLs to the Executable files settings under Tools > Options > Projects and Solutions > VC++ Directories (but only for building, for executing or debugging here)
- You can add them in your global PATH environment variable
- You can start Visual Studio using a batch file as I described here and manipulate the path in that one
- You can copy the DLLs into the executable file's directory :-)
With Visual Studio 2010, you can go in your project's property pages, and it's under "Configuration Properties -> VC++ Directories".
Bullet 1 is deprecated in VS Community 2015. "It is now available as a user property sheet that is added by default to all projects."
In VS 2019 you set this in Project properties -> Common properties -> VC++ Directories -> Executable Directories you can also add project property sheet and set it there and add the property sheet to all new projects.
Alternatively if it doesn't work then: Project properties -> Common properties -> Debugging -> Environment add this PATH=%PATH%; MY_DLL_DIR replacing the MY_DLL_DIR with directory to DLL directory, note the semicolon!
If you only need to add one path per configuration (debug/release), you could set the debug command working directory:
Project | Properties | Select Configuration | Configuration Properties | Debugging | Working directory
Repeat for each project configuration.
Set the PATH variable, like you're doing. If you're running the program from the IDE, you can modify environment variables by adjusting the Debugging options in the project properties.
If the DLLs are named such that you don't need different paths for the different configuration types, you can add the path to the system PATH variable or to Visual Studio's global one in Tools | Options.
None of the answers solved exactly my problem (the solution file I was running was trying to find xcopy to copy a dll after generation).
What solved it for me was going into menu "Project -> Properties"
Then in the window that opens choosing on the left pane: "Configuration Properties -> VC++ Directories
Вы можете указать расположение выходных данных проекта для каждой конфигурации (для отладки, выпуска или и того и другого).
Изменение выходного каталога сборки
Чтобы открыть страницы свойств проекта, в обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства.
В зависимости от типа проекта выберите соответствующую вкладку.
В раскрывающемся списке конфигураций в верхней части окна выберите конфигурацию, расположение файла выходных данных которой нужно изменить (Отладка, Выпуск или Все конфигурации).
На странице найдите запись выходного пути— — она зависит от типа проекта.
Введите путь (абсолютный или относительный для корневого каталога проекта), по которому будут созданы выходные данные, или нажмите кнопку Обзор чтобы перейти к этой папке.
Для некоторых проектов в путь сборки по умолчанию включаются платформа и среда выполнения. Чтобы они не включались, в обозревателе решений щелкните узел проекта правой кнопкой мыши, выберите команду Изменить файл проекта и добавьте следующее:
Если выходные данные не создаются в указанном расположении, убедитесь, что выполняется сборка соответствующей конфигурации (например, Отладка или Выпуск), выбрав ее в строке меню Visual Studio.
Сборка в общий выходной каталог
По умолчанию Visual Studio создает каждый проект в отдельной папки внутри решения. Вы можете изменить пути вывода сборки для проекта, чтобы принудительно поместить все выходные данные в одну папку.
Помещение всех выходных данных решения в общий каталог
Щелкните один проект в решении.
В меню Проект выберите Свойства.
В зависимости от типа проекта откройте вкладку Компиляция или Сборка и задайте в поле Выходной путь папку, которую хотите использовать для всех проектов в решении.
Откройте файл проекта и добавьте следующее объявление свойства в первую группу свойств.
Задание параметру UseCommonOutputDirectory значения true указывает Visual Studio и его обработчику сборки MSBuild, что вы помещаете выходные данные нескольких проектов в одну папку, поэтому MSBuild будет пропускать этап копирования, которое обычно выполняется, если проекты зависят от других проектов.
Повторите шаги 1–4 для всех проектов в решении. Можно пропустить некоторые проекты в качестве исключения, если они не должны использовать общий выходной каталог.
Откройте файл проекта.
Добавьте следующее объявление свойства в первую группу свойств.
Можно использовать как относительный путь к файлу проекта, так и абсолютный. Если вы хотите указать имя проекта в пути, можно сделать ссылку на него с помощью свойств MSBuild $(MSBuildProjectName) и $(MSBuildProjectDirectory) . Другие доступные свойства см. в статье Зарезервированные и стандартные свойства MSBuild.
При сборке Visual Studio по-прежнему будет создавать папку "obj" в папке проекта, но она будет пуста. Ее можно удалить во время сборки. Чтобы сделать это, можно добавить событие после сборки для выполнения следующей команды:
Папка "obj" не будет создаваться при выполнении сборки из командной строки MSBuild.
Практическое руководство. Изменение выходного каталога сборки
Вы можете указать расположение выходных данных проекта для каждой конфигурации (для отладки, выпуска или и того и другого).
Изменение выходного каталога сборки
Чтобы открыть страницы свойств проекта, в обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства.
В зависимости от типа проекта выберите соответствующую вкладку.
В раскрывающемся списке конфигураций в верхней части окна выберите конфигурацию, расположение файла выходных данных которой нужно изменить (Отладка, Выпуск или Все конфигурации).
На странице найдите запись выходного пути— — она зависит от типа проекта.
Введите путь (абсолютный или относительный для корневого каталога проекта), по которому будут созданы выходные данные, или нажмите кнопку Обзор чтобы перейти к этой папке.
Для некоторых проектов в путь сборки по умолчанию включаются платформа и среда выполнения. Чтобы они не включались, в обозревателе решений щелкните узел проекта правой кнопкой мыши, выберите команду Изменить файл проекта и добавьте следующее:
Если выходные данные не создаются в указанном расположении, убедитесь, что выполняется сборка соответствующей конфигурации (например, Отладка или Выпуск), выбрав ее в строке меню Visual Studio.
Как изменить путь к файлу в visual studio в мою базу данных при выполнении или настройке
Я закончил писать свою программу, и она подключается к базе данных SQL, в настоящее время она работает отлично, так как я хочу развернуть эту программу на других компьютерах, она отбрасывает ошибки из-за неправильных путей к файлам. Например, в части настроек visual studio я получаю это, что является файловым путем к моей базе данных.
Снимок экрана значения, которое я пытаюсь изменить:
Есть ли способ изменить это значение, когда я либо запускаю программу, либо устанавливаю программу на компьютер (после публикации?
Любая помощь оценивается.
Редактировать: я думал об использовании приведенного ниже кода, чтобы изменить путь к файлу, но я хотел бы только изменить это значение один раз. Есть какой-либо способ сделать это? (Я пробовал это, но поскольку он читается только, это, вероятно, не сработает). Properties.Settings.Default.Value
Редактирование 2: попытка настройки менеджера конфигурации, возможно ли изменить значения, используя что-то по строкам
Visual Studio переместить проект в другую папку
Как переместить проект в другую папку в Visual Studio? Я привык к такой структуре в своих проектах.
Я хочу переименовать все пространство имен SomethingElse в SomethingNew, каков наилучший способ сделать это (без ручного входа .файл sln)?
удалить проект из решения щелкнув его правой кнопкой мыши в окне Solution Explorer и выбрав удалить. Переместите всю папку проекта, включая подкаталоги туда, куда вы хотите. Добавить проект в решение.
имена пространств имен-это нечто совершенно другое, просто отредактируйте исходный код.
Я попробовал предложение удалить и повторно добавить проект, но тогда исправление зависимостей может быть болью.
Я использую такой подход:
- переместить в папку проекта.
- если проект находится в системе управления версиями, выполните перемещение с помощью команд управления версиями.
- редактировать файл в текстовом редакторе. Там должен быть только один путь, который вам нужно изменить.
- закройте решение в VS2012
- переместить проект в новое место
- откройте решение
- выберите проект, который не удалось загрузить
- в окне "Свойства" есть редактируемая запись "путь к файлу", которая позволяет выбрать новое местоположение проекта
- задайте новый путь
- щелкните правой кнопкой мыши на проекте и выберите перезагрузить
что на самом деле работал для меня было:
- удалить проект из решения.
- отредактируйте файл проекта с помощью текстового редактора.
- второй включается стандартная мелодия телефона все относительно пути к "пакетам". В моем случае пришлось менять "..\пакеты" до ". \packages", так как я переместил проект в более глубокую папку.
- загрузить проект обратно в раствор.
надеюсь, что это помогает.
Это легко в VS2012; просто используйте функцию отображения изменений:
- создайте папку, в которую нужно переместить решение.
- регистрация всех файлов проекта (если вы хотите сохранить изменения), или откат любых проверенных файлов.
- закрыть решение.
- Откройте проводник управления версиями.
- щелкните правой кнопкой мыши решение, и выберите "дополнительно -> удалить сопоставление. "
- измените значение "локальная папка" на тот, который вы создали на шаге №1.
- Выберите "Изменить".
- откройте решение, дважды щелкнув его в проводнике системы управления версиями.
- выгрузить проект в обозревателе решений
- создать новое решение
- скопируйте проекты в папку нового решения
- щелкните правой кнопкой мыши решение, добавить существующий проект.
- если вы используете некоторые рамки, такие как MVC , вам может потребоваться добавить ссылку в диспетчер ссылок.
У меня была та же проблема. Я решил переместить ссылки и менее чем за 15 минут, без изменения ссылок.
для меня решение было простым:
- переместить файлы, где вам нужно.
- удалить папку с именем .и должны быть не видны папки.
- откройте файл решения (.sln) с помощью простого редактора, такого как note или блокнот.++
- измените ссылку, где находится ваш файл, используя следующее структура: если вы помещаете свой проект в ту же папку, удалите предыдущая папка или ссылка"..\ "; если вы поместите в папку выше добавить ссылку "..\" или имя папки.
- сохраните файл с изменениями.
- открыть файл проекта (.csproj файл) и сделать то же самое, удалить или добавить ссылка.
- Сохранить изменения.
- откройте файл решения.
в файле решения (.sln)
Оригинал: Project ("") = "PATH1.ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС", "ScannerPDF \PATH1.\ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ПУТЬ1.ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС.csproj файл", "" Проект ("") = "ПУТЬ1.DataService", "ScannerPDF \PATH1.Метод dataservice\ПУТЬ1.Датасервис.csproj файл", ""
новый: ("") = "ПУТЬ1.МХ.ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС", "ПУТЬ1.МХ.\ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ПУТЬ1.Пользовательского интерфейса.csproj файл", "" Проект ("") = "ПУТЬ1.DataService", "ПУТЬ1.Метод dataservice\ПУТЬ1.Датасервис.csproj файл", ""
Читайте также: