Comment faire pour AUTO UPDATE son aplication ?

ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 - 10 juil. 2007 à 12:22
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 - 15 juil. 2007 à 13:35
Bonjour, je suis en train de creer une application en visual basic 2005 express, et je recherche comment faire pour la qu'elle se mette à jour automatiquement, dès que une mise à jour plus récente est présente sur un ftp.

J'ai entendu parlé que avec click once on pouvait le faire ... mais je ne vois pas comment... Et de plus, si je veux mettre à jour autre chose que mon fichier .exe cela ne sera pas possible avec click once. Enfin bon j'accepte toute aide :)

Merci
A voir également:

11 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 juil. 2007 à 12:52
Salut,
En effet tu dois utiliser ClickOnce,
Un bon tuto ici.
Détrompe-toi tu pourras mettre n'importe quel fichier de ton projet à jour.

<hr size="2" width="100%" />Julien.
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
10 juil. 2007 à 13:24
Merci beaucoup de ton aide ;)
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
10 juil. 2007 à 15:56
En faite comme je l'avais dit,(dites le moi si je me trompe ^^) on est très limité avec click once, parce que on est obligé de garder le setup de base lorsque l'on publie notre application. pour ensuite pouvoir la mettre a jour, alors que moi, je fait un beau setup avec innosetup. Et du coup cela ne fonctionne plus pareil...

Quelqu'un peu m'aider?
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 juil. 2007 à 17:06
Oui bien sûr si tu choisis de travailler avec autre chose que le Framework, il ne faut pas utiliser ClickOnce, ClickOnce est un outil pour les applications utilisant le CLR du Framework.
Mais personnellement je trouve ça bête de faire un setup avec Innosetup qui n'apporte pas d'avantages face à celui du CLR mais pas mal d'inconvénients. A commencer par le fait que ton application n'est plus multi-plateforme, ce qui est quand même un des buts premier de l'utilisation d'un Framework...

Si tu persiste, à toi de faire dans ton application un système de check de la version de téléchargement...

<hr width="100%" size="2" />Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
10 juil. 2007 à 18:00
Qu'entends-tu par multi-plateforme, parce que de toute façon, un logiciel fait avec Visual Basic quelque soit la version et quelque soit la méthode d'empaquetage et de déploiement, ne fonctionnera jamais que sous Windows.

Certes Mono ouvre la porte de l'univers Linux, mais encore faut-il attendre qu'il soit complètement abouti. De toute façon les packages faits par ClickOnce ne doivent pas etre compatible Linux, alors....!

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 juil. 2007 à 18:12
Les empaquetages ClickOnce sont du MSIL, peu importe qu'ils proviennent de VB ou de n'importe quel langage du Framework, ils peuvent être utilisés sur Mono, mais aussi sur des Compact Framework, des Framework 64 bits, ou encore des Framework sous 98, cela n'est pas du tout garanti par l'assembly compilé (exe ou dll) mis dans un empaquetage InnoSetup.

Rappel : La compilation en MSIL et le code obtenu sont totalement indépendants de la plate-forme utilisée.

Mono n'est pas abouti mais déjà fonctionnel en grande partie, et contient un namespace System.Windows.Forms fonctionnel.

"De toute façon les packages faits par ClickOnce ne doivent pas etre compatible Linux, alors....!"

ClickOnce est un composant du Framework, Framework qui est un standard ECMA. Donc chaque Framework, qu'il s'agisse de ceux de Microsoft où de Mono a(ura) un équivalent de ClickOnce (qu'ils appellent comme ils veulent) et s(er)ont compatibles entre eux.

C'est vrai Casy que Mono n'est pas abouti, et qu'il ne dispose peut-être pas encore (je n'en sais rien) d'un équivalent ClickOnce, mais le Framework.Net est une technologie naissante (pas nouvelle dans le concept, cfr java) et je pense que ça vaut le coup de lui faire confiance et de pousser les choses dans cette direction. On y arrivera jamais si tout le monde fais des empaquetages innosetup et n'exploite pas les avantages du Framework.
<hr width="100%" size="2" />Julien.
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
10 juil. 2007 à 18:42
Oui bien sur, mais le probleme est que avec l'install qui est créé avec visual basic, on ne peut pas choisir éxactement où va le dossier, on ne peut pas metre de mot de pass lors de l'installation, on ne peut pas insclure des fichiers enfin je parle tout simplement...

Donc j'ai été forcé de prendre innosetup.

Et personne ne peut m'aider en faite il faut juste aller chercher le .exe et quelques .doc sur un ftp et les remplacer dans le dossier du programme... Mais je ne vois pas du tout comment faire ...
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 juil. 2007 à 20:00
Salut,
Il suffit d'ajouter un installateur à ton projet et tu peux tout paramètrer comme tu le veux, mot de passe, paramètres d'installation,...
Les fichiers de ton projet sont inclus dans l'installation de Visual Studio je te l'assure...

Tu ne vois pas comment faire ?
Cherche comment utiliser le ftp depuis vb, je l'ai jamais fait mais ca doit pas être très compliqué, il y a des classes toutes faites dans le Framework pour ça.
Regarde à chaque lancement si un fichier sur le ftp est plus récent que ceux installés.
Si oui, tu le télécharge, tu ferme ton application et t'en lance une annexe qui s'occupe de faire le remplacement de fichier puis qui relance l'application principale...

<hr width="100%" size="2" />Julien.
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
13 juil. 2007 à 15:19
Es ce que vous conneteriez un tuto pour creer un setup sur visual studio ? J'ai éssayé mais je n'y arrive pas. Je n'arrive meme pas a trouver de tutos ...
0
cs_ketchoupi Messages postés 14 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 23 novembre 2008
14 juil. 2007 à 00:01
Bonsoir,

Moi j'ai eu le un peu pres le même probleme avec une application sur des postes clients avec les fichier de mise à jour sur un serveur local.   Dans mon exemple je ne gere pas de connection à un serveur ftp.

J'ai créer un executable qui va comparer les fichiers entre le client et le serveur puis télécharge les fichiers différents. Pour finir il lance l'application.

Pour l'utilisateur cela est transparent car il click sur la premiere apllication qui s'occupe de tout.

Code

#Region "Données Membres"
    Private UpdateThread As Thread
    Private _Directory As String = "P:\Gestion\PGI-FCC\Programme\2.0.0"   'Chemin où se trouve les fichier sur le serveur
#End Region

#Region "Evenements"
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Instanciation du thread
        UpdateThread = New Thread(AddressOf UpdateFiles)
       
        '--- Démarre le Thread
        UpdateThread.Start()
    End Sub
#End Region

#Region "Fonctions"

    Private Function TestApplicationActive() As Boolean
        'Variable
        Dim ProcessApp As Process()

        'Verrouillage du test Si application déja ouverte
        ''Test si PGI-Application Ouvert
        'ProcessApp = Process.GetProcessesByName("PGI-Application") 'Nom de l'application

        For Each _Process As Process In ProcessApp
            MessageBox.Show("Application deja active")
            Return True
        Next

        Return False

    End Function

    Private Sub UpdateFiles()
    'Lance le test si l'application est deja lancé  
    If TestApplicationActive() = False Then
   
            'Parcours de la liste des fichiers
            For Each fichier As String In Directory.GetFiles(_Directory)
                'Fichier Source (Serveur)
                Dim f As
New FileInfo(fichier)


   
               'Fichier Destination (Client)
                Dim fdest As New FileInfo(Application.StartupPath & "\Executable" & f.Name)
   
                'Test si il ont la même date de modification  - Si Non Copy le fichier sur le client
                If Not f.LastWriteTime = fdest.LastWriteTime Then  f.CopyTo(Application.StartupPath & "\Executable" & f.Name, True)

            Next

            'Lancement du PGI
            Process.Start(Application.StartupPath & "\Executable\PGI-Application.exe", "")

        End If

        'Fermeture du module de mise à jour
        Me.Close()

    End Sub
#End Region

J'espere avoir pu t'aider

Ketchoupi 
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
15 juil. 2007 à 13:35
Merci de bien vouloir m'aider :) , le soucis c'est que directory n'est pas déclaré et du coup je ne voi pas du tout en quoi le déclarer ...
0
Rejoignez-nous