J'ai essayé une application de mise à jour avec UAC et après avoir creusé, j'ai dû inclure un manifeste dans mon application.Le manifeste en double provoque 'Impossible de créer le processus'
Le manifeste est appelé MyApp.manifest
. Afin d'inclure cela dans le projet, j'ai créé un fichier RC qui s'appelle MyApp.rc
. Il est intégré dans un fichier appelé MyApp.rec
avec une commande de pré-construction brcc32 $(PROJECTNAME).rc -fo$(PROJECTNAME).rec
Puis dans mon DPR J'ai
{$R *.REC}
{$R *.RES}
begin
Application.Initialize;
Cela permet Delphi gérer les choses comme les informations de version.
Tout cela fonctionne très bien lorsque l'application est copiée dans Windows 7.
Je suis allé à déboguer aujourd'hui app et mon environnement de dev est Windows XP où je reçois immédiatement:
Après un peu plus creuser On m'a montré le XN Resource Editor. Ce qui a immédiatement montré le problème suivant:
La première de ces Manifestes (celui marqué 1) est le MyApp.manifest
(ce qui est peut-être pourquoi il fonctionne bien dans Windows 7?) Et bien sûr si je supprime la deuxième manifeste l'application fonctionne parfaitement. Bizarrement, si je change le numéro dans le fichier RC, le numéro 1 change avec le numéro 2 mais le deuxième manifeste reste au numéro 2.
Je pense que le deuxième manifeste peut avoir quelque chose à voir avec les thèmes d'exécution mais la désactivation ne fonctionne tout simplement pas (Je décoche la case à cocher, ferme les options du projet, ouvre les options du projet et la case à cocher est cochée).
alors qu'est-ce qui provoque l'apparition du second manifeste? et comment puis-je m'en débarrasser?
La version Delphi est 2007
MANIFEST_RESOURCE_ID de 2 est normalement utilisé dans une DLL. Je doute que cela vous aide mais il ne sera pas produit par l'IDE Delphi. Recherchez simplement votre projet pour $ R et vous devriez le trouver! –