none
Publication d'une application c# RRS feed

  • Question

  • Bonjour,

     Je viens de finir ma première application et je découvre actuellement la fonction du publication.

    Ma première question est la suivante :

    Dans mon application j'utilises une connection à une base de données MySQL, mais lorsque je vais dans : Publier => Composants requis , il n'y a pas MySQL et je penses que lorsque le client installera l'application, cela ne marchera pas puisqu'il manquerait une assembly.

    Comment pourrais-je ajouter la bibliothéque MySQL aux composants de l'installateur ?

    Seconde question,

    Mon dossier de publication (installateur) est sur un disque dur sur mon réseau.

    Lorsque je publie mon application la première fois, tout se passe bien, mais lorsque je change quelque chose à mon logiciel et que je le publie une nouvelle fois ( dans le même dossier ) j'ai le message d'erreur suivant :

    Impossible de copier le fichier "obj\x86\Debug\***.exe"
    vers "bin\Debug\***.exe". Le processus ne peut pas accéder au fichier
     'bin\Debug\***.exe', car il est en cours d'utilisation par un autre processus.

    Pourtant l'application n'est pas en cours d'utilisation.

    Ps : Je travaille sur Visual Studio 2010 Ultimate.

    Merci à ceux qui prendront le temps de m'aider.

    Cordialement.

    vendredi 24 février 2012 08:46

Réponses

  • Bonjour,

    Normalement si l'une de vos projets fait référence à la dll MySql, elle sera automatiquement embarquée dans le package d'installation

    à condition que sa propriété [Copy Local] soit à True (voir le designer).

    Pour ce qui est du problème d'accès au .exe, vous pouvez vérifier au niveau du gestionnaire des taches si votre application ne tourne quand même sans que vous le sachiez.

    Cordialement.

    • Proposé comme réponse Ciprian Duduiala lundi 27 février 2012 07:52
    • Marqué comme réponse Kismi mercredi 29 février 2012 15:27
    vendredi 24 février 2012 11:30
    Auteur de réponse
  • Ma compréhension est que vous essayez d'accéder à une base MySQL hébergée chez 1And1 depuis une application Windows.

    Pou moi le passage "Il est également important de souligner que seul votre espace d’hébergement peut se connecter sur nos serveurs MySQL. En effet, les connexions distantes (depuis un serveur extérieur à 1&1) sont impossibles pour des raisons de sécurité.pour moi" tiré de la FAQ 1And1 veut dire que la base MySQL n'est accessible que depuis une application hébergée chez 1And1 (et ce serait donc de toute façon une application web utilisée via un navigateur et non pas une application Windows).

    Dans un premier temps, n'est-il pas possible de mettre votre base MySQL sur un dossier partagé (comme c'est déjà le cas pour l'appli elle-même) ? Je ne vois pas très bien ce que vient faire cet hébergement 1And1 (qui est plutôt conçu pour déployer des applications web avec la base correspondante) dans ce contexte...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse Kismi mercredi 29 février 2012 15:28
    mercredi 29 février 2012 13:22
    Modérateur

Toutes les réponses

  • Bonjour,

    Normalement si l'une de vos projets fait référence à la dll MySql, elle sera automatiquement embarquée dans le package d'installation

    à condition que sa propriété [Copy Local] soit à True (voir le designer).

    Pour ce qui est du problème d'accès au .exe, vous pouvez vérifier au niveau du gestionnaire des taches si votre application ne tourne quand même sans que vous le sachiez.

    Cordialement.

    • Proposé comme réponse Ciprian Duduiala lundi 27 février 2012 07:52
    • Marqué comme réponse Kismi mercredi 29 février 2012 15:27
    vendredi 24 février 2012 11:30
    Auteur de réponse
  • Merci,

    je ne connaissais pas cette propriété et malgrès mes recherches sur google je n'ai pas vue d'article qui l'a mentionné.

    Pour mon second problème, j'ai vérifié et mon programme est bien arrêté.

    Lorsque depuis visual studio je lance le debugage (après avoir publier), c'est là qu'apparait l'erreur d'accessibilité au .exe et pleins d'erreur apparaissent dans mon programme alors que je n'ai rien touché.

    Exemple : Mon control utilisateur ( qui est un controle de type login ) disparait de mon formulaire et pleins d'erreurs apparaissent.

    vendredi 24 février 2012 13:05
  • Bonjour,

    Si bin\Debug\***.exe est en cours d'utilisation, cela veut dire que vous avez lancé votre application en mode Debug... Vérifiez que ce n'est pas le cas.

    En ce qui concerne la publication, êtes-vous certain de vouloir publier l'exe créé pour le mode Debug ? L'exe créé pour le mode Release est plus optimisé.

    samedi 25 février 2012 08:38
  • Bonjour,

    En fait, une fois que la publication est terminée (Visual studio indique "Publication réussie") c'est là que j'essaye de lancer mon application depuis Visual studio ( donc en mode debug ) et c'est là que les divers problèmes précédement cités apparaissent ( nottament le message concernant l'acccés au .exe , alors que la publication est terminé ).

    Concernant le mode release, je ne connaissais pas la différence mais en effet il a l'air préférable de la publier en mode release.

    J'espére avoir été plus claire.

    Cordialement.

    lundi 27 février 2012 08:05
  •  

    Bonjour,

    J’essaye reproduire votre erreur, mais c’est impossible. En plus, je ne vois pas le lien entre la publication de l’application et l’exécution en mode debug en Visual Studio. Pouvez-vous svp essayer les mêmes actions avec un projet vierge pour voir si le comportement est le même ou il y a un problème lié à ce projet.

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mardi 28 février 2012 09:40
  • J'ai essayé de reproduire l'erreur dans un nouveau projet mais seule celle concernant mon controle utilisateur s'est reproduit :

    Lorsque j'affiche le designer, j'ai un message d'avertissement indiquant que la fenetre peut être instable. Je continue et mon control disparait de mon formulaire. Mais quand je lance l'application en mode debug, le controle est bien la ... C'est peut-être lié à mon projet mais ce n'est pas très grave.

    Cependant je rencontre un autre problème :(

    Lorsque dans mon programme j'essaye de me connecter à une base MySQL distante, j'ai le message suivant :

    "Unable to connect to any of the specified MySQL hosts".

    J'ai regardé sur le net et il semblerait que ca puisse être un problème de port : 3306, j'ai essayé en désactivant le parefeu de mon réseau mais cela n'a pas marché.

    ps : mon hebergeur est 1and1.

    Merci de votre aide.

    mercredi 29 février 2012 08:06
  • Peut-être que pour des raions de sécurité il n'est pas possible de se connecter directement à la base de données depuis mon application.

    Si quelqu'un connait une astuce pour que je puisses accéder à ma base de données en ligne depuis mon programme, je suis preneurs.

    Merci d'avance.

    mercredi 29 février 2012 10:36
  • Bonjour,

    Votre application ne tourne pas chez votre hébergeur ? Si oui cela semble effectivement ne pas être possible : ma compréhension est que http://faq.1and1.fr/scripts/mysql/6.html indique que seule l'application hébergée chez eux peut accéder à la base.

    Il serait peut-être possible de pallier ce problème via un service web (dans ce cas l'application locale accède au service web présent chez 1and1 et c'est ce service qui accède à la base).

    Voir peut-être qq chose comme http://www.blog-nouvelles-technologies.fr/archives/845/ecrire-un-web-service-en-php-partie-1/ (ma compréhension est que vous avez un pack PHP/MySQL et que vous essayez d'accéder à la base depuis une application Windows ?)


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".


    mercredi 29 février 2012 12:17
    Modérateur
  • Bonjour,

    Je pense avoir compris mon problème.

    Que voulez-vous dire par " Votre application ne tourne pas chez votre hébergeur ? " ?

    Actuellement, mon application est un petit programme windows form. La publication est faite sur un dossier partagé sur mon réseau, ainsi tout les utilisateurs de mon réseau peuvent installer et utiliser mon application s'ils le souhaitent.

    Mais si j'heberge mon application chez mon hebergeur ( ce qui d'ailleurs reste encore mysterieux pour moi ), comment les utilisateurs pourraient y avoir accés ?

    Je n'ai pas bien compris ce passage :

    "dans ce cas l'application locale accède au service web présent chez 1and1 et c'est ce service qui accède à la base"

    Comme je travaillais jusqu'à présent en local, cette solution va-t-elle nécéssiter beaucoup de changement dans le code de mon application ? En local j'ouvrais simplement une connection MySQL puis j'effectuais mes opérations. Avec la mise en place d'un service web, cela ne va-t-il pas tout changer ?

    Merci pour vos réponses.

    mercredi 29 février 2012 12:43
  • Ma compréhension est que vous essayez d'accéder à une base MySQL hébergée chez 1And1 depuis une application Windows.

    Pou moi le passage "Il est également important de souligner que seul votre espace d’hébergement peut se connecter sur nos serveurs MySQL. En effet, les connexions distantes (depuis un serveur extérieur à 1&1) sont impossibles pour des raisons de sécurité.pour moi" tiré de la FAQ 1And1 veut dire que la base MySQL n'est accessible que depuis une application hébergée chez 1And1 (et ce serait donc de toute façon une application web utilisée via un navigateur et non pas une application Windows).

    Dans un premier temps, n'est-il pas possible de mettre votre base MySQL sur un dossier partagé (comme c'est déjà le cas pour l'appli elle-même) ? Je ne vois pas très bien ce que vient faire cet hébergement 1And1 (qui est plutôt conçu pour déployer des applications web avec la base correspondante) dans ce contexte...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse Kismi mercredi 29 février 2012 15:28
    mercredi 29 février 2012 13:22
    Modérateur
  • En effet il n'est pas possible d'y acceder directement depuis une application.

    L'hebergement web à été choisit car à la suite de mon projet, j'aurais du develloper une petite application web permettant de combiner l'utilisation de mon application windows et de l'accés à la base de données.

    Il faut donc pour pouvoir me connecter à ma base en ligne une petite application web ( asp ? ).

    Cependant, mon stage se terminant dans très peu de temps, j'ai donc opter pour la seconde solution que vous avez proposé.J'ai donc mis ma base sur un serveur local Access. Après quelques modifications dans mon application, cela fonctionne.

    L'accés web fera sans doute office de sujet pour un projet futur.

    Merci pour l'aide que vous avez pu m'apporter.

    Cordialement.

    mercredi 29 février 2012 15:26