IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Mise à jour d'application


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut Mise à jour d'application
    Bonjour à tous,

    Je m'adresse à vous, car j'ai besoin de conseils pour la mise à jour de mon application, au départ j'envisageais la création d'un soft qui se serait chargé de la mise à jour de mon application mais finalement après quelques recherches, il s'avère que le déploiement de visual studio semble le faire?

    (Je possède visual studio pro 2010 c#)

    Sauf qu'au moment du déploiement il me demande une adresse, il faut faire pointer vers l'exe du fichier en gros, ou plutot le dossier qui contient l'exe et ensuite il compare les versions, mais ceci me semble un peu risqué, n'importe qui peut ainsi accéder à mon serveur non?

    J'ai cherché un peu sur code project des softs qui s'occupent de la mise à jour/téléchargement des mises à jours et il y en a à la pelle alors si vous savez m'en conseillez un dans le cas ou VS ne suffit pas.

    Merci d'avance, r0seBa

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Salut,

    As tu regardé le déploiement avec ClickOnce ?

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonsoir,

    Oui c'est ce sur quoi je me suis penché, j'ai épluché msdn, et à moins que ça m'ai échappé je n'ai pas trouvé comment l'application vérifie les mises à jours, à partir du fichier manifest, mais alors il me suffit de pointer le dossier du fichier manifest qui se trouve sur mon serveur?

    Merci

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,

    Dans les propriétés de ton projet tu as sur la gauche un onglet Publier.

    Dans emplacement du fichier de publication tu rentres soit un site web ou ftp qui indiquera l'emplacement des fichiers mis à jour.
    Ensuite dessous, tu as URL du dossier d'installation dans lequel tu peux générer une page Web pour l'installation de ton appli.

    Quand tu cliques sur le bouton Mise à jour, c'est là ou tu as la possibilité de choisir si ton application doit vérifié avant ou après son lancement si des mise à jour sont disponible.

    Voilà j'espère t'avoir éclairé

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci pour ta réponse,

    Mais mon lien de mise à jour je le fais ponter vers quel fichier? le .Exe? le manifest? sur mon serveur web je dois uploader quoi dessus ?

    Je dois uploader tout le dossier bin dessus en gros? mais alors n'importe qui peut le télécharger?

    Ya pas une possibilité d'uploader un setup.exe sur mon serveur et non tous mes fichiers en clair comme ça, et que si la MAJ doit se faire il télécharge le .Exe et l'installe ?

    Je sais pas si j'ai été compréhensible :s

    Merci,

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Salut,

    En fait ton lien de mise à jour tu ne le fais pas pointer vers un exe ou un setup mais vers un dossier qui contiendra justement les fichiers compilé de ton projet.

    Moi sur mon serveur j'ai un répertoire partagé dans lequel lorsque je publie avec ClikOnce, ClickOnce va généré les fichiers de l'application dedans.

    Ne t’inquiète pas les fichiers que ClickOnce génère ne sont pas visible en clair comme tu dis, donc tes utilisateurs ne pourront pas voir le contenu du code.

    Pour finir juste avant de publier, tu choisis un numéro de version de publication, par exemple 1.0.0.1, et lorsque la prochaine fois tu mets à jour ton projet,
    ton numéro de publication sera automatiquement 1.0.0.2 et afin de forcer la mise à jour lorsque tes utilisateurs lanceront le programme, il faut spécifier dans le bouton Mise à Jour une version minimal.

    Voilà

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci pour ta réponse, j'essaie actuellement de déployer mon application, cependant je rencontre encore quelques soucis :

    J'aimerais que sur mon CD se trouvent le framework + sqlserver en .exe ce qui éviterait à l'utilisateur de les télécharger.

    Je n'arrive pas à effectuer ceci, faut-il cocher la case "télécharger les composants requis à partir de l'emplcement de mon application" dans composants requis ?


    De plus, j'aimerais spécifier le dossier d'installation de l'application mais au moment du choix, je choisis C:\Programmes Files\Nom mais ceci n'est pas générique du tout, si l'utilisateur n'a pas de C:\ par exemple.

    Il n'y a pas moyen de faire un truc du genre {Dossier Programme Files de USER} ?

    De plus malgré ce choix, le projet est déployé dans le dossier indiqué mais dés que je teste j'ai une erreur d'écriture sur le disque :
    Les erreurs suivantes ont été détectées au cours de cette opération.
    * [03/10/2011 11:41:32] System.Deployment.Application.DeploymentDownloadException (sous-type inconnu)
    - Échec du téléchargement de file:///C:/Program Files/Umix/Application Files/BPM2011_1_0_0_0/GlacialList.dll.deploy.
    - Source*: System.Deployment
    - Trace de la pile*:
    à System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
    à System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
    à System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
    à System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
    à System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    à System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    à System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    à System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    --- Exception interne ---
    System.IO.IOException
    - Le fichier 'C:\Users\Victor\AppData\Local\Temp\Deployment\H7BVZOX4.NLV\XCYJV14Q.KM7\GlacialList.dll' existe déjà.
    - Source*: mscorlib
    - Trace de la pile*:
    à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
    à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    à System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)


    Enfin, j'ai quelques erreurs bizarres au moment de valider (quand je change la case à cocher dans composants requis pour pas qu'il s'installe depuis internet(c'est pourquoi je ne peux pas tester à vrai dire) :
    Erreur 4 L'emplacement d'installation pour les composants requis n'a pas la valeur 'site Web du fabricant du composant' et le fichier 'DotNetFX35SP1\dotNetFX20\aspnet.msp' dans l'élément '.NET Framework 3.5 SP1' est introuvable sur le disque. Pour plus d'informations, consultez l'aide. Projet
    Cela veut dire que je dois avoir le fichier aspnet.msp dans le dossier indiqué si je veux qu'il s'installe à l'installation ?


    (Si j'ai bien compris le dossier PRojet_1_0_0_0 avec tous les deploy c'est celui là qui doit etre sur mon serveur (je met un dossier par version et il trouve tout seul ou alors je met 1 seul dossier dans lequel je remplace les fichiers à chaque fois?)


    Désolé de surcharger de questions, j'essaie de me baser sur les différents tutos qui sont soit en anglais soit assez vieux (2005 sur developpez)
    Merci d'avance,

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Salut,

    J'aimerais que sur mon CD se trouvent le framework + sqlserver en .exe ce qui éviterait à l'utilisateur de les télécharger.

    Je n'arrive pas à effectuer ceci, faut-il cocher la case "télécharger les composants requis à partir de l'emplcement de mon application" dans composants requis ?
    Oui il faut que tu coches ""télécharger les composants requis à partir de l'emplacement de mon application".

    De plus, j'aimerais spécifier le dossier d'installation de l'application mais au moment du choix, je choisis C:\Programmes Files\Nom mais ceci n'est pas générique du tout, si l'utilisateur n'a pas de C:\ par exemple.

    Il n'y a pas moyen de faire un truc du genre {Dossier Programme Files de USER} ?
    Ou est ce que tu saisis le dossier d'installation ? Je ne vois pas ou c'est ?

    Pour ton erreur d'écriture sur le disque, regarde déjà si tu n'as pas des avertissements au niveau de ton projet quand tu compiles.

    (Si j'ai bien compris le dossier PRojet_1_0_0_0 avec tous les deploy c'est celui là qui doit etre sur mon serveur (je met un dossier par version et il trouve tout seul ou alors je met 1 seul dossier dans lequel je remplace les fichiers à chaque fois?)
    Tout à fait le dossier PRojet_1_0_0_0 sera le dossier généré par ClickOnce qu'il mettra sur le serveur, après si tu veux refaire une mise à jour de ton appli, le numéro de version de publication sera à incrémenter et ClickOnce générera automatiquement le dossier PRojet_1_0_0_1 par exemple.

  9. #9
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Je trouve que la solution clickonce manque de paramètres au niveau de l'installation ainsi que de personnalisation graphique, c'est pourquoi je réfléchissais à un système de mise à jour automatiques à coder, c'est si dur que ça ?

    Je pensais stocker tous mes fichiers dans un dossier sur mon serveur et au démarrage de l'application, l'application regarde sur le serveur et compare la date de dernière modif de chaque fichier et le télécharge.

    Ce n'était qu'une idée parmis d'autres, si vous avez une meilleure idée, ou meme un script fait sur internet, j'en ai trouvé plusieurs sur codeproject notamment mais souvent assez ancien et ça ne fonctionnait pas pour mon projet (meme en prenant en compte les remarques dans les commentaires)
    http://www.codeproject.com/KB/cs/WebUpdate.aspx

    Merci

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Salut,

    Je peux te donner un exemple de mise à jour qu'on utilise dans ma boite.
    Nous avons une application en c# dans laquelle après avoir compiler nous zippons tous les fichiers nécessaires au bon fonctionnement (*.exe, fichier config, image etc...), le fichier zip est stocker sur un serveur dans un dossier partagé, dans ce même dossier nous mettons un fichier .txt avec un numéro de version par exemple : 1.0.1.

    Puis sur les postes clients, nous avons installé un petit programme qui va lire le numéro de version du fichier .txt et le compare avec un autre qui est sur le poste utilisateur. Si les versions sont differentes alors on va chercher le fichier zip sur le serveur et on l'extrait dans le répertoire de l'utilisateur pour le mettre à jour.

    Si t'as des questions n’hésites pas.

Discussions similaires

  1. Mises à jour automatiques application e-commerce
    Par sidhannowe dans le forum E-Commerce
    Réponses: 0
    Dernier message: 12/11/2010, 09h45
  2. Solution des Mises à jour des applications Web .NET
    Par silset dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 13/03/2009, 17h58
  3. mise à jour d'application
    Par hassancf dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/09/2007, 20h02
  4. Charge de travail pour mise à jour d'applications
    Par ishdiane dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 03/11/2006, 14h28
  5. [C#][ MSI] Comment effectuer une mise à jour d'application ?
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2005, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo