InnoSetup semble corrompre mon exécutable lors de la compilation du projet de configuration. L'exécution du fichier source fonctionne bien, mais l'exécution du fichier après l'installation produit Win32 Erreur 1006 "Le volume d'un fichier a été altéré à l'extérieur". P>
J'ai essayé de désactiver la compression et de définir divers drapeaux, en vain. p>
Quelqu'un a-t-il vécu cela? p>
D'accord, il y a eu quelques rebondissements à la situation: p>
Pour le moment, je peux même copier manuellement un fichier de travail à l'emplacement qu'il est installé et obtenez "le volume d'un fichier ...". Pour être clair: je désinstalle l'application, créez le même dossier et collez les fichiers là-bas et exécutez. P>
Quelques détails supplémentaires pour ceux qui le souhaitent:
Le script InnoSetup est compilé par FinalBuilder à partir de la sortie de Msbuild, également exécuté par finalBuilder, en cours d'exécution sur ma machine avec XP SP3. L'exécutable est un ensemble C # .NET compilé dans la libération de la configuration | AnyCPU. Le fichier fonctionne lorsqu'il est exécuté dans le dossier, le script d'installation le prend de. Il produit le même comportement sur une machine virtuelle XP. Les hachages MD5 du fichier source et le fichier installé sont les mêmes. P>
3 Réponses :
jamais vu ça avant. J'ai quelques questions et suggestions:
- Signez-vous l'EXE pendant la compilation de la configuration? Si oui, essayez de quitter cette partie.
- Dans quel système d'exploitation installez-vous ou cela se produit-il sur toutes les machines que vous avez essayées?
- Exécutez l'installation avec l'option /log="c:\install.log "et publiez le journal. Cela pourrait montrer quelque chose qui se passe lors de l'installation.
- Exécutez un comparateur d'octets ou un chèque MD5 sur la source EXE et l'EXE installé. Sont-ils les mêmes? Ont-ils la même ressource de version? p>
error_file_invalid 1006 (0x3ee): le volume d'un fichier a été modifié de manière externe de sorte que le fichier ouvert ne soit plus valide. P> blockQuote>
Je soupçonne que vous avez ce problème après avoir déplacé les fichiers sur une part de réseau. Il me semble que ce qui se passe est que vous ayez une poignée de fichier ouverte - éventuellement à un fichier temporaire que vous créez - puis un autre processus (peut-être en cours d'exécution sur un hôte différent) vient et renommer ou supprimer ce fichier ou sa modification Arbre de répertoire parent. P>
Donc, mon conseil est: p>
- Essayez d'installer dans un répertoire local li>
- courir après une analyse antivirus, dans mode de sécurité ou sur une autre machine Pour voir s'il n'y a pas d'autre fond méchant changeant Propriétés du volume / répertoire tout en Votre programme est en cours d'exécution. li>
- Assurez-vous que le programme lui-même ne fait rien de bizarre avec le volume ou l'arborescence de répertoire avec laquelle vous travaillez. LI> ol>
OK, je viens de recevoir cette même erreur. J'ai une configuration que mon exécutable utilise. J'ai regardé dans mon dossier un million de fois - mais remarquez enfin que le fichier de configuration était de zéro longueur. J'ai corrigé la configuration et l'erreur s'est arrêtée survenue. P>
Vérifiez les choses les plus simples d'abord ... bonne chance! p>
Malheureusement, j'ai déménagé pour que je ne puisse pas valider votre réponse, mais cela pourrait aider quelqu'un, content que vous ayez eu le tri.
Merci, cela m'a aidé à faire travailler PowerShell. Un powershell.exe.config 0kb me donnait exactement le même message d'erreur!
J'ai eu le même message d'erreur dans une application .NET développée personnalisée. Il s'est avéré que le HardDrive était plein de sorte que le fichier * .exe.config n'a pas pu être enregistré correctement et était vide.
Nous avons eu ceci avec la console Varonis - dans notre cas supprimé le fichier de configuration 0 taille, puis le produit a été lancé et posé quelques questions de configuration à revenir à nouveau.
Travaille pour moi aussi.
Je suis confronté au même problème lorsque mon lecteur D était plein. Active la configuration de l'exécutable a été corrompue à cause de cela et est devenu 0 octets longtemps. Cette réponse m'a aidé à l'attraper!
Juste pour être sûr, cela se produit si vous créez un nouvel installateur pour mettre uniquement ce fichier sans modificateurs dans le système cible? Cela se produit sur n'importe quelle machine que vous installez le fichier? Cela se produit si vous copiez simplement le fichier? Quelle est la directive exacte [Files] que vous utilisez pour inclure le fichier? Exécutez-vous un pascalScript au moment de l'installation?
Merci pour l'intérêt de tous. J'ai eu une installation de travail en faisant un nouveau fichier ISS avec uniquement les entrées minimales (AppName, Appver + Files). Je travaille maintenant sur l'ajout du reste de la ligne des exigences par ligne et tests comme je vais.
Je reçois maintenant le même problème et je me rends au mur. Aider!
@Andre Veuillez poster le journal de l'installation et / ou le script que vous utilisez la production de l'installation. Cela aidera à identifier pourquoi vous pourriez avoir le problème ... Si vous installez de manière incorrecte n'importe quel code Microsoft, vous pouvez obtenir cette erreur.
Salut Robert. Pour le moment, il semble que cet emplacement spécifique sur mon ordinateur soit "mauvais". J'essaie toujours de comprendre à quel point c'est étendu.
@Andre - sonne comme il est temps de courir un chkdsk
J'ai couru chkdsk, pas de joie.
@Andre - J'ai exactement le même problème et je fais mon système à peu près inutilisable. Parce que le "mauvais" emplacement est le powershell.exe. Avez-vous trouvé une solution / solution de contournement ??
@Garethowen J'aimerais pouvoir vous donner de meilleures nouvelles, mais je ne pouvais pas obtenir un correctif fiable. J'ai fini par utiliser NSIS (NULLSOFT Install System) à la place. Je ne suis même pas convaincu que c'était Innosetup. Qu'est-ce qui touche votre PowerShell.exe?
En y réfléchissant, c'était vraiment un problème douloureux. Je serais drastic - copier PowerShell.exe ailleurs et y aller, ou renommez un exécutable différent sur votre système qui fonctionne à "PowerShell.exe" et voyez ce qui se passe. Un redémarrage à froid?
Merci pour la réponse rapide! Si je renomme PowerShell.exe, ou bougez-le, cela fonctionne bien. Mais nous avons des scripts par lots qui font directement référence à "PowerShell.exe". Je vais essayer de changer les paramètres de chemin dans mon système pour faire référence à une copie du dossier PowerShell.
hmm ... il semble que tout fichier sur mon système avec le nom PowerShell.exe donne le même message d'erreur. Peu importe où il se trouve. Donc, si je renommerai Notepad.exe et double-cliquez dessus, je reçois l'erreur "altérée de l'extérieur". C'est ridicule!