2009-09-24 6 views
4

Nous utilisons Wix pour créer un programme d'installation pour notre application .NET et nous sommes en train de porter vers Wix 3.0.Etape par étape ngen avec Wix 3.0

Notre application inclut plusieurs assemblages .NET (comme c'est le cas avec les applications .NET) et l'étape finale de l'installateur est de les créer. Ceci est important car notre application prend environ deux fois plus de temps pour démarrer avec des assemblages non-ngen'ed. Malheureusement, l'étape d'initialisation prend plusieurs minutes et nous aimerions donner aux utilisateurs des informations visuelles sur le fait que l'installateur fonctionne toujours (au moins un utilisateur pensait que le programme d'installation avait planté!). Nous ne voulons pas voulons juste déplacer l'ouverture en arrière-plan, ce qui rend l'expérience utilisateur initiale bien pire - notre application sera très lente à démarrer. Ce que nous aimerions faire est d'assembler les assemblages individuellement et de rendre compte à l'utilisateur dans l'installateur (via un message et la barre de progression) à mesure que chacun se termine. Il est facile de faire en sorte que Wix fasse le lien, et le faire passer en arrière-plan serait facile, mais nous ne voyons pas de moyen simple de réaliser ce que nous voulons. De bonnes idées ou techniques?

(Notre application est compatible avec SP1 .NET 2.0, donc nous ne voulons pas dépendre de quoi que ce soit dans .NET 3+ pour y parvenir.)

Répondre

3

Je ne savais pas que NGen a fourni un mécanisme de rétroaction tel cette progression pourrait être rapportée fichier par fichier (ou autre). Même si c'est le cas, le fait que Windows Installer confie des assemblys au GAC pendant InstallFinalize signifie qu'il n'y a aucune possibilité pour un CustomAction (comme le WiX NGen CustomAction) d'envoyer la progression. Essentiellement la barre de progression est déjà "100%" (bien que les barres de progression dans Windows Installer soient tout sauf exactes). Donc, en fin de compte, je pense que la réponse est qu'il s'agit d'une grande demande de fonctionnalités pour le WiX NGen CustomActions, mais je ne suis pas sûr que ce soit possible.

[Mise à jour]: Silly, moi Je suppose que je devrais regarder le code en premier. Des messages de progression sont envoyés bien que le nom de fichier ne soit pas publié via ActionText. Cela semble être une chose raisonnable à demander. Cependant, ce que j'ai dit plus haut s'applique probablement encore aux assemblages GAC.

+0

Peut-on concevoir notre propre action personnalisée? Nous ne GACing nos assemblées. – fuzzyman

+0

Je ne sais pas ce que vous entendez par "Donc, WiX n'utilise pas les messages de progrès qui sont affichés." Le jeu d'outils WiX ajoute des coûts pour chaque fichier NGen'd et envoie des progrès pour eux lors du traitement. Vous pouvez le voir dans le code. Et oui, vous pourriez écrire votre propre code. Ou simplement améliorer l'action personnalisée NGen un peu pour obtenir exactement ce que vous voulez. C'est 98% du chemin. –

+0

Vous avez dit "Les messages de progression sont envoyés bien que le nom de fichier ne soit pas publié via ActionText". J'ai pris ceci pour signifier que les messages étaient envoyés ("les messages de progrès sont envoyés") mais pas utilisés. Améliorer l'action personnalisée NGen serait comment nous le ferions (en fait ce que je voulais dire en écrivant notre propre - en se basant sur ce qui est déjà là bien sûr). – fuzzyman

2

J'ai trouvé cet article en recherchant WiX et ngen.

NGen: Creating Setup Projects

J'espère que cela vous aidera. Donc, Wix n'utilise pas les messages de progression qui sont en cours de publication.

Questions connexes