Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > MSVC2017 & Setup project |
Автор: zss 3.9.2018, 10:09 |
Более ранние версии студии при сборке данного проекта автоматически определяли зависимости. Например, добавляли runtime library для проектов на c++. Текущая версия этого не делает. Попытка делать это руками тоже не помогла, т.к. приложение еще просит и msvcr120.dll. Не совсем понятно откуда сборка притянула библиотеки для msvc2013, если сам проект и сторонние библиотеки собирались под 2017. Попытка натравить depends не показала зависимостей от 2013. Если ставить runtime для 2013 и 2017 руками вроде помогла. Раз пошла такая пьянка, то решил добавить runtime и инсталлятор и запустить в тихом режиме с ключем /quiet. Установка вылетает с ошибкой. Так как правильно притянуть нужные runtime в пакет установки? И что принципиально поменялось в 2017? |
Автор: xvr 3.9.2018, 17:24 | ||
Версию toolchain'а в проекте меняли? |
Автор: xvr 4.9.2018, 22:12 |
Нет, не SDK. В проекте на вкладке General -> Platform Toolset (в английской версии). Там стоит версия компилятора (у меня например в VS2015 стоит Visual Studio 2015 (v140)). Если проект взят из предыдущей версии VS, там будет стоять предыдущая версия компиляторов. Обычно VS при открытии таких проектов предлагает заапгрейдить версию, но может этого и не сделать. Если на машине стояла предыдущая версия VS то проект соберется в новой VS с компиляторами от старой (если не поменять эту настройку). Если предыдущей VS не стояло, то проект не соберётся, а скорее всего потребует поменять версию тулсета (или поменяет сам) |
Автор: zss 6.9.2018, 10:23 | ||
Везде руками поставил Visual Studio 2017 (v141). Не помогло. Похоже, что есть библиотеки, которые собирались с другим компилятором. Попытался проверить зависимости библиотек - вроде все чисто. Нет зависимостей от msvcr120.dll |
Автор: xvr 7.9.2018, 11:56 |
Киньте сюда файл солюшена и проектов, посмотрим ... |
Автор: zss 7.9.2018, 12:47 | ||
В архиве проекты. В солюшине смущают строки
Переделывал действительно из 15 студии |
Автор: xvr 7.9.2018, 16:44 | ||
Ещё смущают строки
Но ссылок на старый тулчейн действительно нет ![]() А как это выглядит? |
Автор: zss 7.9.2018, 16:50 |
На чистой машине говорит, что приложение нельзя запустить, т.к. отсутствует msvcr120.dll Добавлено через 3 минуты и 22 секунды И самое главное, почему автоматом не добавляются runtime библиотеки в зависимости проекта, как раньше |
Автор: xvr 8.9.2018, 09:11 | ||
И depends не находит msvcr120.dll в зависимостях? Мистика какая то. Может не та версия Qt подцепилась? У них dll одинаково называются для разных версий |
Автор: zss 8.9.2018, 10:09 |
Машина была чистая. Qt ставил одну. Все библиотеки варил именно под нее. Правда, солюшен был из 15 студии. Но, даже если нужно msvcr120, то в зависимостях они бы появились. А так там вообще ничего нет. Не msvc ни qt. Если бы проект автоматом добавил бы msvcr120, ну и хрен с ним. |
Автор: xvr 9.9.2018, 14:53 |
Это библиотека runtime, она в любом случае не добавляется явно в зависимости, а приносится (в зависимости) от тулчеёна. Как она смогла протащиться от VS2015 к VS2017 загадка ![]() Они добавляются неявно. Qt добавляет свои либы в плагине, а msvc в выборе run time'а прямо на главной странице проекта. Могу только посоветовать пересоздать с нуля солюшен и проекты в VS2017 |
Автор: zss 10.9.2018, 11:13 |
Я тоже уже об этом подумал. Нужно пересоздать попробовать... |
Автор: xvr 10.9.2018, 14:40 |
Кстати, если вы пробовали собирать проект, а потом меняли весрию toolchain'а, попробуйте сделать rebuild (что бы пересобрало гарантироованно всё, что есть). Могли застрять старые бинарники с кривыми ссылками (хотя это и маловероятно) |