MSBuild.exe не уважает флаг компилятора / MT?

Я был удивлен, увидев, что после переключения нашей системы сборки с VS2008 на VS2010 наше приложение теперь жалуется, что MSVCR100.dll отсутствует во время выполнения. Я проверил параметры сборки нашего проекта, и мы указываем многопоточность (/ MT) для библиотеки времени выполнения. Однако, когда мы строим с использованием графического интерфейса, DLL статически связана, и ошибка не появляется. Ошибка происходит только тогда, когда мы строим с использованием MSBuild.exe из командной строки.

Я сравнил командные строки, и они почти одинаковые, оба указывают / MT:

VS2010 GUI:

/ nologo / W3 / WX- / O2 / Oi / Oy- / GL / D «_CRT_SECURE_NO_WARNINGS» / D «GSL_DLL» / D «WIN32» / D> «_ WINDOWS» / D «_USRDLL» / D «_VC80_UPGRADE = 0x0710» / D «__STDC_CONSTANT_MACROS» / D> «_ WINDLL» / D «_UNICODE» / D «UNICODE» / Gm- / EHsc / MT / GS / Gy / fp: точный / Zc: wchar_t> / Zc: forScope / Fp «Release \ Temp \ ourProject.pch «/ Fa» Release \ Temp \ «/ Fo» Release \ Temp \ «> / Fd» Release \ Temp \ vc100.pdb «/ Gd / analysis- / errorReport: очередь

MSBuild.exe:

MSBuild.exe «% WORKSPACE% \ OurProject.vcxproj» / t: перестроить / p: конфигурация = выпуск

/ nologo / W3 / WX- / O2 / Oi / Oy- / GL / D _CRT_SECURE_NO_WARNINGS / D GSL_DLL / D WIN32 / D _WINDOWS / D _USRDLL / D _VC80_UPGRADE = 0x0710 / D __STDC_CONSTANT DDD DWD — / EHsc / MT / GS / Gy / fp: точный / Zc: wchar_t / Zc: forScope> / Fo «Release \ Temp \» /Fd»Release\Temp\vc100.pdb «/ Gd / TP / analysis- / errorReport :очередь

Я видел несколько постов о Статическое связывание VS2010 не работает должным образом, Однако мой проект строит и ссылки просто отлично. Только во время выполнения он не может найти необходимую DLL. Установка среды исполнения VS2010 или доставка вместе со средой исполнения — это варианты, которые мы стараемся избегать.

Спасибо!

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]