Сборка становится 32-битной, когда она встроена в релиз, а не отлаживается в VS2008 - PullRequest
0 голосов
/ 27 июля 2010

У меня возникла странная проблема при сборке сборки для одного из моих модулей.

При работе на 64-битной системе возникали ошибки, которые я проследил до того, что эта сборка была связана с 32-битной спецификой сборки.Все наши модули (или должны) построены так, чтобы быть немного независимыми.

Запуск CorFlags.exe на сборке показал следующее.


Версия: v2.0.50727

CLR заголовок: 2,5

PE: PE32

CorFlags: 11

ILONLY: 1

32BIT: 1 <- обратите внимание на набор 32-битных флаговto one! </p>

Подпись: 1


Однако затем я вернулся, чтобы перестроить модуль, и именно так случилось, что в режиме отладки.(Примечание: это упрощенная версия истории, в которой пропущены часы тестирования решений, поиска в Google и борьбы с драконом: D)

На этот раз, когда я проверял CorFlags.exe, он дал следующее:


Версия: v2.0.50727

CLR Заголовок: 2,5

PE: PE32

CorFlags: 9

ILONLY: 1

32BIT: 0

Подпись: 1


Так что теперь я запутался, разорвал на части конфиги сборки Visual Studio и обнаружил, что они точно такие же (т.е.все установлено на «Любой процессор») Теперь я в растерянности, как это исправить.

Что могло бы вызвать такое поведение?

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Build + Configuration Manager, выберите Release в верхнем левом поле со списком. Близко. Теперь используйте Project + Properties, вкладку Build и проверьте Platform Target.

0 голосов
/ 27 июля 2010

Я не уверен, что вызывает такое поведение, но вот возможный обходной путь:

Вы пытались запустить CorFlags с / 32BIT-флагом, чтобы удалить флаг 32BIT из сборки?Если это работает, вы можете добавить шаг пост-сборки, чтобы убрать этот флаг.

...