Как я могу сохранить переменную окружения в помощнике по сборке Visual Studio? - PullRequest
1 голос
/ 07 августа 2009

У меня есть проект NMake в Visual Studio 2008, в котором для команды Build задан пользовательский инструмент, выполняющий долгую задачу сборки.

Build = "@call MyTool -config $ (ConfigurationName)"

Мне нужен способ передать специальный флаг ("-quickbuild") моему инструменту, чтобы он дал ему быстрое подмножество всей сборки.

Build = "@call MyTool -config $ (ConfigurationName) -quickbuild"

Однако я хочу, чтобы между ними было легко переключаться, поэтому я на самом деле не хочу менять команду сборки.

Я думал изменить команду сборки на такую:

Build = "@call MyTool -config $ (ConfigurationName) $ (ShouldQuickbuild)"

и создайте визуальный студийный макрос, который установит для переменной среды «ShouldQuickbuild» значение «-quickbuild», затем вызовет DTE.Solution.SolutionBuild.BuildProject (...) для проекта. Проблема в том, что он не видит переменную окружения "ShouldQuickbuild".

Любые идеи о том, как я могу заставить это работать. Есть ли лучший способ делать то, что я хочу?

Ответы [ 3 ]

1 голос
/ 15 ноября 2009

Используйте пакетный файл и проверьте, если среда передается в пакетный файл, вы можете получить его в пакетном файле и вызвать нужный инструмент.

Пакетный файл будет выглядеть так:


@ эхо выключено

MyTool -config% 1% ShouldQuickbuild%


ЕСЛИ среда не передается в командный файл, вам нужно каким-то образом передать информацию в глобальном масштабе. Можно ли создать файл из макроса VS? Или вызвать EXE? Тогда это довольно просто ..

0 голосов
/ 07 августа 2009

Вы можете управлять этим с помощью «Конфигурации решения». Создайте две новые конфигурации: «Debug Quick» и «Release Quick». Это будут копии оригиналов. Затем измените команду сборки для каждой конфигурации.

0 голосов
/ 07 августа 2009

Попробуйте поместить переменную внутри разделителей%, как в% ShouldQuickBuild%.

...