none
Projet de déploiement VS 2010 - Composant requis SQL SERVER Express 2008 ou SQL SERVER 2008 RRS feed

  • Question

  • Bonjour, J'ai créé un projet de déploiement pour mon application C# qui nécessite, au minimum, SQL SERVER 2008 EXPRESS.

    Je l'ai donc mis en composant requis avec "téléchargement à partir du site web du fournisseur". J'ai testé mon installeur sur un poste possédant SQL SERVER 2008 R2 et je m'étonne que le programme ait téléchargé et lancé l'installation de SQL SERVER EXPRESS.

    Y a-t-il moyen d'empêcher le téléchargement et l'installation du composant quand on se trouve sur un poste possédant une version plus étendue (SQL SERVER 2008 R2 ) que SQL SERVER 2008 Express ?


    lundi 9 mai 2011 09:37

Réponses

  • Bonjour Fabien.

    Le Setup Project de VS 2010 est assez limité. La gestion des prérequis n'offre pas beaucoup de liberté. Pour SQL Express, la vérification se fait via un executable qui n'est pas documenté.

    De là vous avez plusieurs choix :

    1. Tenter de modifier le fichier "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SqlExpress2008\en\package.xml" et d'ajouter une condition (http://msdn.microsoft.com/en-us/library/ms229510.aspx) de vérification de la présence ou non d'une clé de registre (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server) correspondant à SQL Express 2008 R2

    2. Utiliser l'outil codeplex dotNetInstaller (http://dotnetinstaller.codeplex.com/) pour gérer les prérequis de votre application.

    En esperant vous avoir mis sur la piste.


    Gregory OTT => http://twitter.com/gregory_ott
    ALM Engineer at Tekigo => www.tekigo.com
    jeudi 12 mai 2011 09:06

Toutes les réponses

  • Bonjour Fabien.

    Le Setup Project de VS 2010 est assez limité. La gestion des prérequis n'offre pas beaucoup de liberté. Pour SQL Express, la vérification se fait via un executable qui n'est pas documenté.

    De là vous avez plusieurs choix :

    1. Tenter de modifier le fichier "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SqlExpress2008\en\package.xml" et d'ajouter une condition (http://msdn.microsoft.com/en-us/library/ms229510.aspx) de vérification de la présence ou non d'une clé de registre (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server) correspondant à SQL Express 2008 R2

    2. Utiliser l'outil codeplex dotNetInstaller (http://dotnetinstaller.codeplex.com/) pour gérer les prérequis de votre application.

    En esperant vous avoir mis sur la piste.


    Gregory OTT => http://twitter.com/gregory_ott
    ALM Engineer at Tekigo => www.tekigo.com
    jeudi 12 mai 2011 09:06
  • Finalement j'ai opté pour un script NSIS. A la lecture des clés de registres j'ai compris les difficultés que pouvait avoir un programme d'installation pour déterminer la version de SQL SERVER installée sur le poste, en fonction du type de système, de la version 64 ou 32 bits du fait que ce soit un version EXPRESS ou pas les clés de registres sont à des endroits différents.
    lundi 23 mai 2011 15:14