Visual Studio 2008 иногда сбрасывает платформу обратно на любой процессор с x86.

У меня есть многопроектное решение, в котором я установил платформу для всех проектов на «x86» с помощью диспетчера конфигураций. Это установлено таким образом как для сборок Debug, так и для Release во всех проектах.

Дважды платформа возвращалась к «любому процессору», и мне приходилось снова заходить в диспетчер конфигураций, чтобы исправить это.

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

Любые предложения о том, почему это может происходить, и как предотвратить это в будущем?


person Tom Bushell    schedule 07.02.2011    source источник


Ответы (2)


Я думаю, что выбранная сборка является предпочтением пользователя, поэтому, если вы извлечете чистую копию, вы начнете с пустой пользовательской настройки. файл. Затем VS по умолчанию будет первым в списке, что, вероятно, является «любым процессором».

person Sogger    schedule 07.02.2011
comment
Является ли то, что вы называете файлом pref, файлом с расширением .suo? Проводник Windows показывает это как файл параметров пользователя Visual Studio - может быть, мне нужно добавить это в SVN? (Предполагая, что я могу заставить другого разработчика моего проекта согласиться с моими вариантами) - person Tom Bushell; 08.02.2011
comment
Нет, вы не должны включать .suo в svn, иначе это создаст ту же проблему (то есть: всегда устанавливает сборку на то, что было установлено последним человеком, который зафиксировал). Решение состоит в том, чтобы сохранить файл .suo при обновлении svn или просто установить тип сборки каждый раз, когда вы извлекаете чистую копию. Это все при условии, что выбранная сборка находится в файле suo, позвольте мне еще раз проверить... - person Sogger; 09.02.2011
comment
Да, единственный файл, который изменяется при изменении сборки, — это файл .suo, так что это должно быть так. Это двоичный файл, поэтому вы не можете легко его изменить (за исключением открытия VS и изменения настроек сборки :). - person Sogger; 10.02.2011
comment
Несмотря на то, что это решение, это ужасно! У нас есть сервер сборки TFS, который неправильно создает наши EXE-файлы x86, поэтому они иногда работают как x64, а наши COM-компоненты x86 затем терпят неудачу. Параметры платформы сборки НЕ должны быть параметрами пользователя, а параметрами проекта, поэтому их следует хранить в файле PROJECT, а не в файле SUO. Позор вам Майкрософт. - person Brain2000; 07.09.2012

Я придумал способ, по крайней мере, обнаружить проблему, когда она возникает.

В командную строку события перед сборкой добавлено следующее:

rem EXIT WITH ERROR 99 IF PLATFORM IS NOT x86. (CHECK CONFIGURATION MANAGER)
if $(PlatformName) NEQ x86 exit 99

Если параметр «Платформа» изменится, теперь я получаю сообщение об ошибке при сборке проекта.

Грубо, но работает.

person Tom Bushell    schedule 08.07.2011