none
Application Windows Form créée sous VS2012 impossible à installer sous Windows XP RRS feed

  • Question

  • Bonjour,

    J'ai développé une appli Windows Form en VB avec VS2010 Express sous Windows XP.

    Je suis maintenant passé à VS Pro 2012 sous Windows 7.

    Avec beaucoup de difficultés j'ai réussi à migrer mes Forms de VS 2010 à VS2012. Je n'ai fait aucune modification du code source.

    Maintenant mon problème concerne la publication de l'application pour une utilisation sous Windows XP.

    Je sais que le framework 4.5 ne fonctionne pas sous XP donc j'ai modifié les propriétés du projet avec:

    - framework cible = ".NET Framework 4"

    - toutes les références font appel au ".NET version 4.0.0.0"

    - composants requis lors de la publication = "Microsoft .NET Framework Client profile (x86 et x64)" (idem que dans mon projet sous VS2010) par contre j'ai uniquement l'option "Windows Installer 4.5" disponible alors que sous VS2010 "Windows Installer 3.1" était sélectionné.

    Lorsque je lance l'installation de mon appli sous Windows XP, le message "setup.exe n'est pas une application Win32 valide" apparaît et il est donc impossible d'installer cette appli. Je rappelle que le code est absolument identique entre les 2 versions (VS2010 et VS2012).

    Quelqu'un a t-il déjà rencontré les mêmes problèmes ? Si oui comment est-ce résolu ?

    J'ai fait un essai en décochant la case "Windows Installer 4.5" mais sans résultat. Je ne sais pas s'il est possible d'importer le composant ""Windows Installer 3.1" afin de retrouver la même config qu'en VS2010.

    J'en viens à me poser la question de savoir s'il est possible de créer des applis avec VS2012 qui peuvent fonctionner sous XP.

    Merci d'avance.

    Vincent

    mercredi 3 juillet 2013 09:53

Réponses

Toutes les réponses

  • Bonjour v1cent,

    Un message du type :

    indique en général la tentative d’exécution d'un programme 64 bits sur un système 32 bits, ça peux aussi indiquer un fichier corrompu après téléchargement par exemple, ou un support (CD, DVD, ...) HS.

    Tu peux vérifier avec FileAlyzer la version du Setup utilisé (je ne parle pas de ton appli). Cela donne ceci (onglet PE header) :

    Il existe aussi un petit programme en ligne de commande dont je ne retrouve pas le lien, je le dépose sur cjoint : http://cjoint.com/13ju/CGdnG1puQjY.htm

    Cela donne :

    C:\>file test32.exe

    test32.exe, DOS/Win, i386 32bit executable, GUI, .Net/Mono assembly, PE format

    C:\>file test64.exe

    test64.exe, DOS/Win, x86-64 64bit executable, GUI, PE format

    C'est un peu plus "light"


    Cordialement, Jacques

    mercredi 3 juillet 2013 11:39
  • Pour être un peu plus complet, dans le cas d’exécution d'un exe 64 bits sur un Windows 7 32 bits, le message est :

    ce qui est un peu plus parlant. Par contre l'éditeur, c'est toi ;-)


    Cordialement, Jacques

    mercredi 3 juillet 2013 11:43
  • Bonjour Jacques,

    Merci de te pencher sur mon pb.

    Je viens de faire des essais avec FileAlyser.

    1er essai: publication de l'appli avec "Framework cible" et "composants requis" initialisés avec Framework 4.0

    2ème essai: publication de l'appli avec "Framework cible" et "composants requis" initialisés avec Framework 4.5

    Dans ces 2 cas la version du setup n'est pas en 64 bits --> Machine = 014C / Intel 386

    Donc le problème vient d'autre chose.

    Par contre j'ai découvert que le fichier "app.manifest" pourrait peut être avoir une influence sur mon problème.

    Ci-dessous les lignes de code qui traitent des versions de windows compatibles. XP n'y apparaît pas !

      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
          <!-- Liste de toutes les versions de Windows avec lesquelles cette application peut fonctionner. 
          Windows sélectionnera automatiquement l'environnement le plus compatible.-->
          <!-- Si votre application est conçue pour fonctionner avec Windows Vista, supprimez les commentaires du nœud supportedOS suivant-->
          <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>-->
          <!-- Si votre application est conçue pour fonctionner avec Windows 7, supprimez les commentaires du nœud supportedOS suivant-->
          <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
          <!-- Si votre application est conçue pour fonctionner avec Windows 8, supprimez les commentaires du nœud supportedOS suivant-->
          <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>-->
        </application>
      </compatibility>

    Je vais orienter mes recherches de ce côté là.

    Cdlt, Vincent

    mercredi 3 juillet 2013 12:27
  • Je viens de tomber sur ces liens :

        Targeting Windows XP with C++ in Visual Studio 2012

    et

        Visual Studio 2012 Update 1

    Certes cela concerne C++, mais indique que dans sa version originale VS 2012 ne peut cibler Windows XP.

    Ta version VS 2012 est elle à jour ?

    Je n'ai pas accès aujourd'hui à la machine où j'ai VB 2012 Express...


    Cordialement, Jacques

    • Marqué comme réponse Aurel Bera jeudi 4 juillet 2013 06:14
    mercredi 3 juillet 2013 13:06
  • J'ai mis à jour mon VS 2012 avec l'update 3...

    Ca marche !!!

    Un grand merci à toi Jacques pour ton aide.

    Cdlt, Vincent

    mercredi 3 juillet 2013 15:12
  • Étonnamment, cela ne passe par plus par Windows Update.

    Il y a un paramétrage dans : OUTILS -> Options ...

    Et un choix : OUTILS -> Extensions et mises à jour ...

    Je n'ai pas rêvé ? Jusqu'à VS 2010 ça passait bien par Windows Update ?

    (J'ai effacé l'historique WU ...)


    Cordialement, Jacques

    mercredi 3 juillet 2013 17:44
  • bonjour,

    j'ai le même problème moi.

    peux-tu me dire ce que t'as fait pour que ça fonctionne stp?

    merci d'avance

    mardi 21 avril 2015 21:27