Что мешает моему приложению .NET 2.0 работать на 64-битной платформе? - PullRequest
3 голосов
/ 16 ноября 2009

У меня есть приложение .NET 2.0, которое не будет работать в 64-битной ОС (клиент пробовал и Server 2003, и Windows 7). Сообщение об ошибке:

Приложение не удалось правильно инициализировать (0xc0000135).

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

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

Кто-нибудь знает, что на самом деле означает этот код ошибки? Есть ли какие-либо распространенные подводные камни в 64-битной поддержке, на которые мне следует обратить внимание?

Единственное, что у меня есть, - оболочка .NET TAPI (ныне устаревший продукт под названием TransPort) может не работать в 64-битной системе. (Поставщик давно ушел, и у меня нет исходного кода).

Ответы [ 2 ]

8 голосов
/ 16 ноября 2009

Наиболее вероятной причиной этой проблемы является то, что ваш код использует 32-битную специфическую нативную DLL либо через COM-взаимодействие, сборку в смешанном режиме (например, C ++ / CLI) или через PInvoke. Попробуйте настроить приложение .Net на архитектуру x86 и посмотреть, работает ли оно.

Вы можете использовать инструмент corflags, чтобы заставить приложение иметь 32-битную привязку

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

Если, как предположил JaredPar, вы используете Interop, Microsoft FxCop обнаружит любые проблемы, связанные с 32/64 вызовами стандартных системных библиотек DLL (System32.dll и User32.dll)

...