2011-06-21 2 views
1

J'ai une application winform écrite en C#. Ma base de données est MySql. Maintenant, je voulais le déployer sur d'autres machines sans avoir à installer mysql individuellement/sur chaque machine. S'il vous plaît me suggérer des moyens que je pourrais inclure ma base de données MySql avec l'application dans un installateur sans avoir à installer mysql sur chaque machine. Sinon, si ce n'est pas possible dans MySQL, je pourrais le migrer dans Sqlite. Veuillez me diriger vers les ressources pertinentes.création du paquet d'installation avec mysql C#

J'ai déjà vu des questions similaires sur ce forum mais aucune d'elles n'était claire dans leurs solutions.

Merci

Répondre

2

Face à une situation similaire, je simplement inclus une distribution MySQL avec l'application (ce qui était à des fins internes, vous devrez peut-être une licence pour distribuer commercialement MySQL).

Voici ce que je l'ai fait:

  • J'ai installé un serveur MySQL sur une machine locale. Je l'ai configuré pour que le dossier de données et le fichier de configuration résident dans le même dossier que le reste du serveur MySQL. J'ai ensuite créé la base de données, un utilisateur, et rempli la base de données avec des données pertinentes.
  • J'ai inclus l'intégralité du dossier MySQL dans le programme d'installation. Le programme d'installation copierait simplement ce dossier dans le dossier de destination de l'application. Je pourrais alors démarrer MySQL comme ceci: {app_folder}\mysql\bin\mysqld.exe --defaults-file="{app_folder}\my.ini". Pour arrêter MySQL j'ai utilisé: {app_folder}\mysql\bin\mysqladmin.exe -u youruser -p yourpassword shutdown. Vous pourriez avoir votre application vérifier si MySQL est en cours d'exécution et le démarrer sinon.

Ceci peut ne pas être la meilleure solution puisque n'importe qui pourrait facilement accéder à la base de données. Aussi, je ne peux pas confirmer si cela fonctionnerait avec les versions actuelles de MySQL (vous devrez peut-être spécifier le dossier de données dans le fichier de configuration). Si la base de données est seulement utilisée par votre application, SQLite pourrait être une meilleure option.

+0

Bonjour Monsieur, maintenant je suis également confronté au même problème. J'ai 2 fichier .exe un est pour la machine client et le 2ème est pour la machine d'administration les deux sont connectés au réseau. J'ai déjà développé l'application Windows WPF avec SQLite db. Comment puis-je accéder à la base de données depuis la machine d'administration vers une autre machine client? – lashja

+0

J'ai déjà développé l'application Windows WPF avec SQLite db. Sinon, si ce n'est pas possible dans Sqlite, je pourrais le migrer dans MySql. Puis-je avoir besoin d'une licence (payante) pour distribuer MySQL commercialement? Je ne peux pas utiliser une base de données payée. En fait, je voulais le déployer sur d'autres machines sans avoir à installer mysql individuellement/de manière sélective sur chaque machine. – lashja

1

Si je comprends bien votre question, vous pouvez utiliser le « Prerequisites in Windows Installer Deployment »

Vous ajoutez mysql installateur comme prérequis et après que vous pouvez installer votre application et exécuter le script pour la création de bases de données et d'autres ressources comme table, vues et Procédure stockée.

This tutorial peut vous aider dans la deuxième étape.

Questions connexes