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

VB.NET Discussion :

"Object reference not set to an instance of an object" Oui mais où ?


Sujet :

VB.NET

  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut "Object reference not set to an instance of an object" Oui mais où ?
    Hello,

    Suite à un changement dans l'architecture de notre réseau interne, je suis amené à réaliser un launcher pour nos applications internes.

    En soi, rien de compliqué. Quand on lance le launcher d'une application on :
    1. vérifie si l'application ne tourne pas déjà
      • oui : message d'erreur
      • non : on continue

    2. vérifie s'il y a une nouvelle version
      • oui : on la télécharge
      • non : on continue

    3. on lance l'application


    Vraiment rien de sorcier donc.

    Les points 1 et 2 se déroulent sans souci pour le point 3, j'obtiens l'erreur en titre... En temps normal, rien de plus simple à déboguer. Sauf que là, j'ai le message et c'est tout...

    Voici ce qu'il y a dans le constructeur de la première winform de l'application que j'essaie de lancer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
        Public Sub New()
            ' This call is required by the designer.
            InitializeComponent()
     
            Try
                personPercent = gbPers.Width / Me.Width
                codePercent = gbCode.Width / Me.Width
     
                User = BLL.User.GetByUsername(Environment.UserName)
     
                Dim stores As New BLL.Stores(User.GetPossibleStores())
                If stores.DTO.Count > 1 Then
                    Dim frm As New dlgStore(User, stores)
                    frm.ShowDialog()
                    frm.Dispose()
                Else
                    tsbChangeStore.Visible = False
                End If
     
                'controls initialization (text)
                InitDGV()
     
                'controls initialization (data)
                NeedToReloadData = True
                dtpMonth.Value = New Date(Today.Year, Today.Month, 1)
                CurrentMonth = dtpMonth.Value
                InitPersons()
                InitErrors()
                AddHandler dtpMonth.ValueChanged, AddressOf dtpMonth_ValueChanged
     
                'traduction
                Messages = TEXT_BLL.Text.SetTexts(My.Application.Info.AssemblyName, Me, User.DTO.Language)
                Me.Text = String.Format(Me.Text, User.DTO.Store.Code)
     
                'design
                RepositionControlsAfterTranslation()
            Catch ex As Exception
                MsgBox(ex.Message)
                MsgBox(ex.StackTrace)
                If ex.InnerException IsNot Nothing Then
                    MsgBox(ex.InnerException.Message)
                    MsgBox(ex.InnerException.StackTrace)
                End If
            End Try
     
        End Sub
    Je m'attends donc à avoir le message d'erreur suivi de la trace mais non. Je n'ai que le message d'erreur...

    Et bien sûr, si je lance directement l'exe que le launcher à télécharger, aucun souci et l'application fonctionne tout à fait normalement...

    Je ne comprends donc pas où est-ce que ça coince...

    Quelqu'un aurait-il une idée?

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Solution
    La souci n'était pas dans le launcher ni dans l'application qui est appelée mais dans une dll qui utilisée par celle-ci.

    En fait, et je l'ignorais, quand on lance une application depuis une autre, le répertoire de travail de la 2e application est en fait le même que la première. Ce qui fait qu'un fichier n'était pas trouvé. En utilisant un objet ProcessStartInfo et en affectant le bon répertoire à la propriété WorkingDirectory, ça fonctionne tout de suite mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/04/2008, 18h36
  2. new : Object reference not set to an instance of an object
    Par zulad dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2007, 20h35
  3. Object reference not set to an instance of an object
    Par DjRusty dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 07h26
  4. Réponses: 1
    Dernier message: 28/12/2006, 11h05
  5. Réponses: 1
    Dernier message: 20/04/2006, 12h09

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