2011-05-16 2 views
2

J'utilise IExpress pour combiner mon bootstrappeur et mon fichier msi. Cela fonctionne bien sauf que si j'installe le programme sur une machine sans aucun des pré-requis (.net 4, sql ce), il échouera. Il échoue toujours après le redémarrage, ce qui arrive après l'installation du framework .net 4. Dans le journal des erreurs qu'il me souligne, il donne un message le long des lignes deIExpress ne trouve pas msi après le redémarrage

Error: Unable to locate application file

Relancer l'installation après ne l'installe correctement, mais ce n'est pas une solution acceptable pour ce projet. Quelqu'un a des idées sur la façon de résoudre ce problème? Faites-moi savoir si j'ai besoin d'expliquer autre chose. Merci.

+1

Lorsque vous obtenez le redémarrage, obtenez-vous quoi que ce soit écrit à la clé RunOnce? C'est généralement le mécanisme utilisé pour démarrer les programmes qui doivent être exécutés après un redémarrage. Il est possible que le fichier que vous souhaitez exécuter soit stocké dans un dossier temporaire qui peut être effacé lors du redémarrage. Donc ... avant le redémarrage, vérifiez ce que pointe la clé RunOnce, puis, après le redémarrage, vérifiez si ce chemin est toujours valide. –

Répondre

1

Stephen a raison; dès que l'IExpress SFX se termine, il supprime le répertoire temporaire qu'il utilise pour l'extraction (quelque chose le long des lignes %temp%\IXP000.TMP). Donc, après le redémarrage, votre MSI est parti.

Pour conserver vos fichiers d'installation, vous devez d'abord tout copier dans un autre répertoire. Vous pouvez lancer un fichier de traitement par lots (par exemple, définissez la commande du programme d'installation sur quelque chose comme cmd /c persist.bat). Alors persist.bat ressemblerait à quelque chose comme:

@echo off 
xcopy /y * "%temp%\myproject\" 
msiexec /q /i "%temp%\myproject\install.msi" /l*v "%temp%\myproject_install.log" 
Questions connexes