2010-10-14 15 views
2

Plus précisément, SQL Express. J'ai une application winform interne qui, si elles ont un ordinateur portable, doit installer SQL Express pour activer certaines fonctionnalités. En ce moment, je l'installe pour tout le monde, car il ne blesse pas les utilisateurs de bureau en dehors du temps qu'il faut. Je voudrais l'installer SQL après avoir détecté s'ils sont sur un ordinateur portable.Comment avoir un "dynamique" Cliquez une fois prérequis

Avec Cliquez une fois, quelles sont mes options? D'après ce que je peux voir, je devrais décocher SQL Express comme prérequis et le gérer manuellement dans mon code de démarrage. Comment/Où pourrais-je accomplir cela?

Y a-t-il un meilleur moyen? Si je change de modèle de déploiement, le compromis ne sera-t-il pas une augmentation drastique de l'effort/du temps pour les mises à jour?

Répondre

4

Les prérequis sont la partie la plus mal comprise de ClickOnce. ClickOnce est juste la technologie qui télécharge et synchronise les fichiers entre un client et le serveur. Le programme d'amorçage (setup.exe) que Visual Studio crée n'a rien à voir avec ClickOnce autre que le lancement de l'application ClickOnce après la fin. C'est déroutant parce que Visual Studio écrase tout ensemble pour que tout le monde pense qu'ils sont liés.

Si vous ne voulez pas que tout le monde utilise SQL Express, supprimez-le de vos prérequis Visual Studio. De là, vous pouvez le gérer manuellement dans votre code tant que votre application peut démarrer sans SQL Express installé. Au démarrage de l'application, vous pouvez vérifier le registre pour voir si SQL Express est installé, puis le télécharger et lancer le programme d'installation. Je l'ai fait avec un programme d'installation de Crystal Reports et cela a fonctionné correctement.