Должен ли я установить AWS SDK для C ++ с Nuget или Vcpkg? - PullRequest
0 голосов
/ 29 апреля 2018

Я использовал Nuget для установки AWS SDK для C ++. Моя сборка работает нормально, но когда я пытаюсь запустить, я получаю пропавшее сообщение Dll. Мне нужно либо добавить путь к Dll, либо скопировать его в мой выходной каталог, но исходный путь - C: \ Users \ Tom \ Documents \ Bitbucket \ nos \ MyApp \ Builds \ packages \ AWSSDKCPP-Transfer.redist.1.4.34 \ build \ native \ bin \ Win32 \ Debug \ v141 \ dynamic \ aws-cpp-sdk-Transfer.dll, который кажется смешным. Я не могу найти более простой способ сделать это с Nuget для C ++.

Кто-то предложил мне использовать вместо него Vcpkg. Это лучше, чем Nuget, или у меня будет такая же проблема?

Для справки Настройка AWS SDK для C ++

Ответы [ 2 ]

0 голосов
/ 22 августа 2018

Я понял, что проблема в том, что в нашем модульном тесте мы установили для Build Events-> Event Post-Build Event-> Command Line значение "$(ProjectDir)"RunTestExe.bat $(QTDIR) "$(TargetDir)$(TargetFileName)", чтобы он запускал модульные тесты после их сборки. Если я удаляю этот Nuget правильно копирует Dlls при отладке. Я предполагаю, что он использует то же поле. Это похоже на ошибку, которую нужно исправить, поэтому я поднял ее в Microsoft: https://developercommunity.visualstudio.com/content/problem/245884/nuget-doesnt-handle-dependencies-for-debugging.html

0 голосов
/ 30 апреля 2018

Должен ли я установить AWS SDK для C ++ с Nuget или Vcpkg?

Вы можете использовать nuget для установки AWS SDK для проекта C ++.

Но вы должны использовать AWSSDKCPP-service name, чтобы добавить библиотеку для конкретной службы в ваш проект, а не устанавливать распространяемые компоненты AWSSDKCPP-Transfer.redist.

Когда вы проверите описание пакета nuget AWSSDKCPP-Transfer.redist, вы найдете этот пакет nuget:

Вторично распространяемые компоненты для пакета «AWSSDKCPP-Transfer». Этот пакет должен быть установлен только как зависимость. (Это не тот пакет, который вы ищете).

enter image description here

Итак, вы должны установить пакет nuget AWSSDKCPP-Transfer.

После установки пакета nuget AWSSDKCPP-Transfer, а затем сборки проекта правильные двоичные файлы автоматически включаются для каждой используемой конфигурации среды выполнения / архитектуры - вам не нужно управлять этими зависимостями самостоятельно.

aws-cpp-sdk-transfer.dll, aws-cpp-sdk-s3.dll и aws-cpp-sdk-core.dll копируются в выходной каталог:

enter image description here

Надеюсь, это поможет.

...