Вам не нужно копировать эти dll, если вы хотите только запускать и / или отлаживать свое приложение из Visual Studio, вы можете добавить пути к зависимостям в среду отладчика в Visual Studio.
Вы можете сделать это в Visual Studio следующим образом:
- щелкните правой кнопкой мыши файл vcxproj в обозревателе решений
- , в этом контекстном меню выберите
Properties
- в открывшемся диалоговом окне перейдите к
Debugging
(на левой панели) на правой панели найдите Environment
, и там вы можете использовать что-то вроде этого:
PATH = $ (QTDIR) \ bin; $ (PATH)
Примечание : при обратном редактировании вы можете увидеть некоторую кодировку для';'это не проблема, вам нужно быть осторожным, когда вы редактируете это, чтобы не пропустить ';'между любыми 2 путями.
Если проект зависит от большего количества библиотек, вы можете добавить туда больше путей среды и не забудьте отредактировать это для всех параметров сборки (Release / Debug / x64 / x86 / etc)и вы можете определить свои собственные переменные с базовым путем для каждой внешней библиотеки.
Теперь вернемся к Qt, эта переменная QTDIR определена в файле .user, для всех конфигураций сборки у вас будет что-то вроде:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QTDIR>C:\Qt\5.12.1\msvc2017_64</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
Проблема, с которой я столкнулся, заключалась в том, что QTDIR
был заменен на LocalDebuggerEnvironment
(я имел в виду, что сначала определяется LocalDebuggerEnvironment), и, очевидно, это не работает, так что если это такпросто вручную поменяйте местами эти 2 определения с вашим любимым текстовым (или xml) редактором, чтобы QTDIR был определен ранее.
Поэтому я предлагаю этот метод вместо использования windeploy как части пользовательского шага сборки, используйте windeploy дляваш скрипт, который генерирует (или подготавливает файлы) установщик.