2009-04-14 7 views
1

Je travaille sur une nouvelle fonctionnalité pour notre produit, dont un composant a des implications de sécurité assez importantes: il fonctionne comme un service WCF, et effectue des actions hautement privilégiées. En tant que tel, je voudrais que ce composant soit installé seulement quand l'utilisateur le demande (et enlevé quand il n'est plus requis), et pour que l'installation soit accomplie par programme.MSI Meilleures pratiques d'installation à la demande?

J'ai examiné advertising (spécifiquement, les installations affectées), et il semble être un bon mécanisme pour accomplir cela. I'm not sure whether the installation of an advertised feature can be undone, cependant, ce qui serait utile pour enlever le composant quand il n'est plus nécessaire. Je ne suis pas aussi complètement sûr si l'installation programmatique pourrait être accomplie avec la publicité: advertised COM classes seems to be discouraged.

Je me demande donc si un simple appel à msiexec pour installer/retirer le composant serait plus judicieux. Le composant pourrait être emballé dans un fichier MSI distinct ou en tant que caractéristique distincte de notre fichier MSI principal. Quelles techniques avez-vous utilisées pour installer les fonctions sur demande?

+1

Le problème avec la publicité est que la source MSI doit toujours être disponible. Si vous envisagez d'utiliser AD et publier la configuration, ce n'est pas un gros problème, mais si la configuration provient d'un CD, alors votre problème est en cours. La part du réseau tend également à changer. (cont ...) –

+1

MSI séparés sonnent comme une bonne idée, vous pouvez appeler MsiInstallProduct au lieu d'exécuter msiexec.msi. –

Répondre

1

J'ai résolu ce problème en installant tous les éléments nécessaires à l'avant puis en démarrant/désactivant le service WCF comme requis.