Почему изменение платформ решений не позволяет увидеть частичные классы? - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть программа, которую я поддерживаю, написанная парнем, которого я заменил в этой компании.

Существует более старая версия программного обеспечения, которая отлично работает на всех наших платформах развертывания., но версия, которую я пытаюсь выдвинуть, работает нормально на 32-битных настольных установках, но сбоит и записывает, когда пытается получить доступ к установленным DLL-библиотекам Crystal Reports и Informix на 64-битной машине, запуская сеансы терминального сервера (да, я знаю, могу ли я что-то еще изменить в платформе развертывания?)

Одним из предложенных способов исследования было изменение платформы решения с «Любого процессора» на x86.

При попыткедля этого Visual Studio перестает подключать частичные классы, созданные объектами XAML, при этом объекты объявляют, что у них нет методов «InitializeComponent», а затем терпят неудачу, пока не достигнут максимального количества ошибок.

Как ни странно, измените платформу решения, а затем перестройтеing в Expression Blend компилируется просто отлично.Смена платформы на AnyCPU устраняет проблему.Все проекты имеют конфигурацию компиляции и отладки, установленную на Active.Я не вижу никакой причины, по которой простое изменение целевой платформы не позволило бы XAML генерировать частичные классы (или какова бы ни была проблема фактическая ...)

Почему это происходит и какя могу это исправить?

РЕДАКТИРОВАТЬ: Хорошо, похоже, что есть некоторые внешние библиотеки DLL в проекте, и что эти являются причиной того, что я бы назвал первым-Ошибка компиляции уровня, так как кажется, что они не содержат классов после переключения целевой платформы.

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

IСейчас я работаю над восстановлением этих классов из этих библиотек DLL и, надеюсь, смогу собрать проект, который скомпилируется на нескольких целевых платформах, к концу дня.Надеюсь ...

Оставьте это здесь на случай, если у кого-то когда-либо возникнет подобная проблема, поскольку решение этой проблемы определенно не было сразу очевидным.

Я до сих пор не уверен, почему всеостальной части проекта взрывается под VS2008, или что я сделал, чтобы вызвать

Ответы [ 2 ]

0 голосов
/ 22 ноября 2010

Скопируйте мой EDIT выше, чтобы ответить на вопрос:

Хорошо, похоже, что в проекте есть некоторые внешние DLL, и они являются причинойто, что я бы назвал ошибкой компиляции первого уровня, поскольку они не содержат никаких классов после переключения целевой платформы.

В VS2008 это вызывает каскадный сбой, когда абсолютно ничего не работает,как описано выше, но в какой-то момент мне каким-то образом удалось импортировать проект в VS2010, сохранив только те ошибки (отсутствующие классы и т. д.), без остальной части проекта.

Я сейчас работаюна восстановление этих классов из этих библиотек DLL, и мы надеемся, что сможем собрать проект, который скомпилируется на нескольких целевых платформах к концу дня.Надеюсь ...

Оставьте это здесь на тот случай, если у кого-то когда-нибудь возникнет похожая проблема, поскольку решение этой проблемы определенно не было сразу очевидным.остальной части проекта взрывается под VS2008, или что я сделал, чтобы вызвать

0 голосов
/ 18 ноября 2010

Одним из предлагаемых способов исследования было изменение платформы решения с «Любого ЦП» на x86.

Если вы прямо или косвенно ссылаетесь на собственные библиотеки DLL, они должны соответствовать выполнению »битность "процесса загрузки.

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

Но в 64-битной системе есть 64-битные версии Informix и Crystal Reports?

Сборка только под x86, если только вы не выиграете от запуска как 64-битный процесс (маловероятно), он сэкономит на тестировании всего дважды.

PS.Убедитесь, что вы полностью перестраиваете при изменении настроек платформы, поэтому все существующие промежуточные файлы сначала удаляются.

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