Как остановить VS2K10 от кэширования переменных среды - PullRequest
3 голосов
/ 27 июня 2011

Я сейчас пишу расширение C ++ для компьютерной игры с использованием сторонней библиотеки. Поскольку каждый, кто разрабатывает в этой системе, может иметь заголовочные файлы в разных каталогах, он использует переменные среды в своем файле проекта, чтобы указать, где находятся эти заголовочные файлы.

Время от времени выпускаются новые версии библиотек, и я склоняюсь к тому, чтобы сохранить новые и старые версии на случай, если мне понадобится скомпилировать старую версию.

Изменение переменной среды для указания местоположения новой версии прекрасно работало в Visual Studio 2008.

Изменение переменной среды для указания местоположения новой версии является серьезной ошибкой в ​​Visual Studio 2010.

Я пробовал все следующее:

  1. Использование setx для изменения переменной среды в оболочке cmd.
  2. Перезагрузка компьютера
  3. Повторное сканирование решения
  4. Выгрузка и перезагрузка проекта.
  5. Воссоздание файлов проекта и решения.

Ничего из этого не помогло.

Есть ли способ предотвратить кэширование переменных среды VS2K10?

Ответы [ 3 ]

1 голос
/ 27 июня 2011

Visual Studio загружает переменные окружения при запуске, насколько я знаю, но я не использовал переменные окружения с VS2003.Обычно перезапуска Visual Studio достаточно, чтобы подобрать новые переменные среды.Если это не так, то это еще один аргумент, чтобы не использовать переменные среды для конфигурации проекта.

Альтернатива № 1: Использовать таблицы свойств

Поскольку вы находитесь в VisualСтудия земли вы можете использовать лист свойств или серию листов свойств для наследования настроек проекта, которые могут быть распределены каждому разработчику, которые могут быть использованы для определения настроек для различных сборок, архитектур и общих путей включения и т. Д. Выполнение этого обычно означает стандартизациюсреда разработки, основанная на дереве управления исходным кодом.Хотя они могут обновлять или извлекать источник и библиотеки в разные места локально, относительные пути должны совпадать с таблицами свойств, которые обычно основаны на управлении исходным кодом.

Альтернатива № 2: Использованиевыделенная сборочная машина.

Одна машина настроена для выполнения ваших различных сборок и, возможно, проведения тестов на дым и других автоматических модульных тестов.Это позволяет разработчикам указывать свои среды, решения и проекты, однако они могут при условии, что они проверяют только исходные файлы.Если источник, который они регистрируют, не совместим со средой компьютера сборки, он должен иметь возможность отправлять электронную почту с прикрепленным выводом, где будет достаточно легко использовать функцию обвинения в вашем контроле над источником для кого-то, кто неправильно добавил зависимость или что-то ещедело может быть.Распространено планировать ночные сборки в такой среде, чтобы отлавливать вновь появившиеся ошибки, прежде чем они будут скрыты в дальнейших изменениях.

При этом в прошлом я использовал переменные среды для включения определенных версий boost и других библиотек.и это сработало хорошо, потому что я был единственным разработчиком, использующим C ++ в этом офисе, и была только одна машина разработки, нуждающаяся в среде.Когда у вас есть несколько человек, которые модифицируют несколько вещей, вам действительно нужно придумать какой-то унифицированный способ размещения вашего источника, библиотек и результатов.

0 голосов
/ 06 октября 2011

Я не знаю, как это предотвратить, но кажется, что кеш хранится в файле решения .suo. Удаление этого файла удалило кэшированные значения среды, когда я столкнулся с той же проблемой. Файл .suo создается заново при повторном открытии проекта.

Если подумать, я одновременно удалил файл vcproj.user. Лучше ядерное оружие, чтобы быть уверенным. :)

Надеюсь, это поможет.

0 голосов
/ 04 августа 2011

Оказывается, это могло быть связано с тем, как Visual Studio или Windows были настроены на этом компьютере. В установке Visual Studio 2010 на моем ноутбуке такой же проблемы не возникает.

В конце прошлой недели у этой машины произошел критический сбой в работе, и я посмотрю, не возникнет ли аналогичная проблема при ее замене после установки VS2010.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...