У меня есть решение смешанных проектов VB.NET и C++. При использовании Visual Studio 2005 вы можете установить «Инструменты-> Опция-> Проекты и решения-> Каталоги VC++», чтобы помочь компилятору найти ваши включаемые файлы. При создании того же решения с помощью MSBuild я не понимаю, как передать эти настройки. C++ не будет компилироваться без указания этого пути. При создании этого решения из Visual Studio оно строится идеально.
Как можно пройти этот путь для MSBUild?
Обновлено: похоже, что MSBuild не передает путь (или переключатель / u) к vcbuild. Вместо этого запуск из VCBuild не выполняется из-за зависимости.
Для последней версии VS2013 см. Мой ответ в теме: stackoverflow.com/questions/15654002/…





Чтобы установить подключаемые каталоги, вы можете добавить их в переменную среды INCLUDE. Вы используете тот же формат, что и в PATH env. переменная - пути разделяются точкой с запятой.
Чтобы установить каталоги библиотеки - вы можете сделать это аналогичным образом, поместив их в переменную окружения LIB.
Чтобы установить переменные среды, просто щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства». Затем вы переходите на вкладку «Дополнительно», там есть кнопка «Переменные среды».
Или вы можете запустить MSBuild из BATCH-скрипта, и в этом случае перед вызовом MSBuild вы можете установить переменные INCLUDE и LIB, например:
set INCLUDE=C:\Libraries\LibA\Include
set LIB=C:\Libraries\LibA\Lib\x86
Если это не сработает, попробуйте исправление, предложенное @CharlesB ниже.
Вы должны добавить /p:"VCBuildAdditionalOptions= /useenv" в аргументы MSBuild, чтобы он принимал переменные INCLUDE и LIB.
... а также вы можете добавить% INCLUDE% и% LIB% к своим переменным, чтобы избежать их перезаписи
set INCLUDE=C:\Libraries\LibA\Include;%INCLUDE%
set LIB=C:\Libraries\LibA\Lib\x86;%LIB%
Вы можете использовать переключатель /p[roperty]:useenv=true для пересылки переменных среды в новых версиях MSBuild. Смотрите полную статью здесь http://blogs.msdn.com/b/vcblog/archive/2010/01/11/vcbuild-vs-c-msbuild-on-the-command-line.aspx
В Visual 2010 все работает лучше, чем ожидалось, поскольку используются каталоги свойств пользователя. Больше нет необходимости использовать переменные среды