J'utilise Visual Studio 2012 Professionnel et crée un installateur à l'aide d'un programme d'installation avancé (3ème partie). P>
Lorsque j'exécute l'installation sur Windows XP, je reçois le message suivant: p>
.exe n'est pas une application Win32 valide. P> blockQuote> L'exécutable installé fonctionne bien sur les fenêtres 7 et 8. p>
Comment puis-je obtenir le programme de travailler sur Windows XP? P>
3 Réponses :
à partir de l'invite de commande Visual Studio, exécutez cette commande: où "setup.exe" est l'exe de configuration créée par votre créateur d'installateur. Je posterai un exemple d'informations que vous voyez cela montre ici: p> Le numéro de version du sous-système est important. VS2012 est la première version de Visual Studio qui a commencé à définir cette valeur sur 6.00, le numéro de version de Vista. Versions précédentes, ainsi que VS2012 Lorsque vous cible .NET 4.0 ou antérieure, définira ce numéro de version sur 4.00 P> Ceci est sinon un acte important à l'avance et une partie de la prise en charge de l'élimination progressive du XP. Windows version 6.00 et UP, Vista, Win7 et Win8 font attention à ce numéro. Ils supposeront que votre programme n'est pas au courant des fonctionnalités ultérieures de Windows et doit avoir plusieurs cales AppCompat activées. Le plus remarquable est AppCompat dans Aero, le thème de bureau qui affiche Windows avec des frontières de graisse faciles à cliquer avec une souris. Windows mentira à propos de ces frontières, vous indiquant que votre fenêtre est plus petite que ce n'est en réalité. Une excellente source de confusion aux programmeurs qui tentent de faire de la gamme Windows les uns avec les autres. P> La conséquence de la vue de 6.00 affichée est que votre programme d'installation ne peut plus s'exécuter sur XP. C'est la version 5.02. P> Assurez-vous d'abord d'abord que vous faites
À l'aide de Windows Server 2012, j'ai trouvé que Editbin.exe est introuvable. Dans ma solution, en utilisant iexpress.exe (version system32), je emballe un installation install.msi à l'intérieur d'un setup.exe avec FramewordNet40. Bien que chaque DLL soit compilée avec x86, y compris l'Install.Msi, iExpress définit la machine sous la forme x64 (résultats des valeurs d'en-tête de fichier dans BUTTMBIN.EXE). Ce n'est que lorsque j'ai utilisé iExpress.exe sur une machine Win XP 32 bit a été capable de créer un setup.exe valide.
Je suis assez nouveau à Visual Studio, donc je ne suis pas sûr que si l'option ci-dessous est ajoutée Récemment, mais Visual Studio 2013 a une option de compatibilité en arrière pour incorporer Win_xp dans la liste cible. L'image ci-dessous aide: p>
P>
p>
et ensuite lorsque j'exécute la commande bolkbin code>, j'ai eu les résultats ci-dessous. P>
p>
Alors maintenant, l'application, dans des circonstances normales, peut être exécutée dans Windows XP.
J'espère que c'est utile. P>
Merci, cela m'a aidé (construire un Tiny C EXE basé sur C). Peut-être que vous pourriez éditer votre réponse pour expliquer le réglage dans le texte, au cas où quelqu'un ne peut pas voir les images.
En réalité .net 4.5 Framework génère uniquement Fenêtre 6.0 ou plus Version compatible em> EXE STRUT>. Et dans votre cas La solution simple est à votre problème, cible .NET 4.0 ou moins. P>
C'est probablement la recherche de .NET 4.5 Cadre, qui n'est pas présent sur votre machine Win XP.
@Alexbell peut-être, ou ce pourrait être un problème d'architecture. Était-ce compilé comme x86 ou x64?
Si possible, vérifiez votre application pour utiliser NET Framework 4.0
@Adrian Je suis actuellement en train d'utiliser une architecture du processeur ...! Que devrais-je utiliser au lieu de tout CPU ...?