2009-06-10 7 views
2

J'ai une application de bureau WPF qui utilise une base de données personnalisée pour le stockage. Je dois préparer un projet d'installation (à partir de Visual studio 2008) (configuration complète, pas ClickOnce).Comment installer une base de données d'application de bureau personnalisée dans SQL Express?

Je peux ajouter le à la liste des conditions préalables à l'application et il l'installe lors de la configuration de l'application.

Ma question est: Comment puis-je exécuter un script lors de l'installation pour créer la base de données dont l'application a besoin? OU comment puis-je restaurer la base de données sur l'ordinateur client pendant l'installation? Une autre question connexe, que se passerait-il s'il existe déjà sur la machine client? Comment détecter le nom d'instance et les données de connexion? Et puis comment pouvoir -si nécessaire- changer la chaîne de connexion utilisée par Entity framework pour se connecter à cette base de données?

Merci, Ed

Répondre

3

SQL Server Express Edition est généralement un choix vraiment pauvre pour une base de données locale. C'est un moteur de classe serveur qui aime utiliser beaucoup de ressources et fonctionne en tant que service (il utilise donc ces ressources même lorsque votre application n'est pas en cours d'exécution). En d'autres termes, il appartient à un serveur. Le seul endroit où j'ai vu SQL Server Express utilisé sur un ordinateur de bureau fait presque partie de l'application Microsoft Small Business Accounting, et dans ce cas, vous installez généralement ce programme sur une machine dont l'objectif principal est de prendre en compte votre entreprise.

Qu'est-ce que vous devrait faire est d'utiliser un moteur de bureau ou classe en cours comme SQL Server Compact Edition , SQLite, ou même accès. Cela permettra également de simplifier votre déploiement.

Si vous insistez pour faire cela, sachez que le programme d'installation créera une nouvelle instance du serveur sql sur le système. SQL Server ira bien avec cela. Cependant, vous devrez en tenir compte dans la chaîne de connexion de votre application, ce qui peut être un peu plus compliqué. En outre, de mettre en place la base de données que vous avez un couple d'options:

  • le créer à partir du code client du premier démarrage de l'application
  • Créer avec une action d'installation personnalisé (difficile à obtenir le droit parce que les autorisations msi)
  • Distribuez un fichier .mdf de pré-construction et attachez-le avec une action d'installation personnalisée ou au premier démarrage de l'application.
Questions connexes