@den11770

Как правильно собрать .exe на C++/CLR?

Пишу программу на C++, использующую Windows Forms. Все хорошо компилируетcя, и exe из папки Debug запускается на моем компьютере.
Но при переносе на другой компьютер(с установленным Framework 4.5), выдает ошибку "msvcr100d.dll не найден на этом компьютере", именно с префиксом "d".
Как сбилдить exe, который бы не требовал этот дебажный dll, а только Framework ?

IDE: VISUAL STUDIO 2012
  • Вопрос задан
  • 1567 просмотров
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
1. Нужно собрать релизную версию приложения. Не распротраняйте на другие компьютеры дебажные версии. Тогда "d" требовать не будет.
2. Т.к. приложение на C++, оно будет требовать рантайм. Этот рантайм можно как слинковать статически, так и оставить динамически загружаемым. Это настраивается в свойствах проекта. Если слинковать статически - то тогда dll не потребуется, но и обновить рантайм отдельно от приложения будет невозможно.
3. Если поставлять рантайм отдельно, как динамически загружаемый (т.е. чтобы была dll), то можно либо класть его рядом с exe, либо устанавливать redistributable версию райнтайма. Второе предпочительнее, т.к. тогда рантайм можно будет обновить с помощью системной обновлялки, если в нём будут найдены критичные проблемы.
4. Чтобы точно узнать, что требует EXE для своего запуска (не считая модулей, загружаемых с помощью LoadLibrary), воспользуйтесь Dependency Walker.

Более подробную информацию вы сможете получить на MSDN в разделе деплоя C++ приложений.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AnnTHony
@AnnTHony
Интроверт
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы