it-roy-ru.com

Как настроить таргетинг на .NET 4.0.3 XP с помощью Visual Studio 2012? Приложение не запускается с "недопустимым приложением Win32"

У меня есть большое приложение, ориентированное на .NET 4.0.3, которое должно работать на XP. Он прекрасно работает с использованием Visual Studio 2010 с пакетом обновления 1 (SP1) и правильно работает на XP.

Сборка с использованием Visual Studio 2012 с ориентацией на .NET 4.0.3 также прекрасно работает и отлично работает в Windows 7, но не работает в XP. Я получаю сообщение о том, что MyApp.exe не является приложением Win32.

Как мне продолжить использовать .NET 4.0.3 с поддержкой XP компьютеров, использующих Visual Studio 2012?

19
KTrace

Я не уверен, что это будет работать, но попробуйте трюк показанный здесь , чтобы вручную установить версию подсистемы с помощью EditBin.exe.

7
Mehrdad

У нас также есть эта проблема. Дело не в том, на какую платформу нацелено ваше приложение (мы нацелены на клиента 4.0). 

Проблема в том, что Visual Studio 2012 не будет производить щелчок один раз при запуске setup.exe, который будет работать на XP. Ошибка вводит в заблуждение, поскольку она всегда сообщает, что программа не является допустимым приложением Win32. Это делается в любой версии XP, включая 64-битные версии.

Проблема не в приложении, а в файле setup.exe, выпущенном VS2012. Единственный способ обойти это - опубликовать с использованием VS2010.

9
Joe Griffith

Microsoft недавно опубликовала исправление для этого. (Экспресс-версии включены.)

Подробности на: http://blogs.msdn.com/b/smondal/archive/2012/10/15/setup-exe-is-not-a-valid-win32-application.aspx

5
indigophoenix

Установить целевые системные требования можно в разделе «Свойства проекта» -> «Опубликовать» -> «Предварительные требования» (VS2012 с обновлением 1). Несмотря на то, что вы создаете для .NET 4 (Свойства проекта -> Приложение -> Target Framework), вам необходимо изменить предварительные требования с 4.5 на 4, так как требования не будут отбрасываться автоматически.

Сборка с целью 4, но с предварительным требованием 4,5 запустит установщик, но не проверит системные проверки

1
Jadyn

VS2012 обновление 1 должно решить эту проблему. Тем не менее, я не уверен, какие варианты использовать, хотя, это Toolset в Project Properties-> General-> Platform Toolset?

0
Ash Prasad

Это сработало для меня - просто соберите свое решение в Studio 2012 и возьмите копию содержимого решения из папки Debug. Убедитесь, что на XP клиенте установлен .net 4. 

0
Jim