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

Dotnet Discussion :

Pb deploiement : "Le programme a cessé de fonctionner"


Sujet :

Dotnet

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Pb deploiement : "Le programme a cessé de fonctionner"
    bonjour tlm,

    J'ai développé une application en C# utilisant une dll que j'ai fait en C++/CLI (qui elle-même fait appel à des lib en C++).

    En générant ma solution sous Visual 2005, ca marche sans problème.

    Mais en copiant mon appli + la dll sur un autre poste (possédant Framework 2.0), je reçois le message : "Le programme a cessé de fonctionner".

    Pour déterminer mon problème, j'ai crée un projet c# bidon vide faisant appel ou non à ma dll. Conclusion : avec la dll ca marche pas, et sans ma dll, ca marche.

    Donc j'ai un problème avec la dll. Mais, en créant une dll contenant une classe bidon qui ne fait rien, même pb :/

    dll :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace DllTest {
     
    	public ref class ClassTest
    	{
    	public:
    		void Test()
    		{
    		};
    	};
    }
    appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    namespace AppliTest
    {
        public partial class FormTest : Form
        {
            private DllTest.ClassTest m_test = new DllTest.ClassTest();
     
            public FormTest()
            {
                InitializeComponent();
            }
        }
    }
    La dll est bien ajoutée dans les références de mon appli.

    Pourriez-vous m'indiquer une piste svp ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    essaie de lancer ton appli en ligne de commande

    l'avantage c'est qu'elle cessera de fonctionner, mais si une exception non catchée est levée à l'intérieur, elle sera récupérée sur la console.

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Tient juste en passant, l'ordi sur lequel tu développes a la même architecture de processeur de celui sur lequel tu test ? (32bits, 64bits)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    merci de vos réponses,

    alors j'ai développé sur Vista 32bit, et j'ai spécifié x86 comme plate-forme cible

    j'ai testé en ligne de commande mais même résultat.

    Par contre ds le rapport d'erreur, j'ai :
    EventType : clr20r3 P1 : applitest.exe P2 : 1.0.0.0 P3 : 47d001eb
    P4 : applitest P5 : 1.0.0.0 P6 : 47d001eb P7 : 5 P8 : e
    P9 : system.io.fileloadexception

    fileloadexception : je vois pas trop pourquoi

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par vikz Voir le message
    Mais en copiant mon appli + la dll sur un autre poste (possédant Framework 2.0), je reçois le message : "Le programme a cessé de fonctionner".
    oui mais tu as testé sur Vista 32 ou Vista 64 ?

    Sinon dans la méthode Main de ton Program.cs englobe le tout par un try-catch pour afficher l'erreur.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    je fais des tests sur Vista 32 et XP SP2

    l'exception catchée est la suivante :

    Impossible de charger le fichier ou l'assemby
    'DllTest, Version=1.0.2988.24524, Culture=neutral,
    PublicKeyToken=null' ou une de ses dépendances.Impossible
    d'accorder les demandes d'autorisation minimales. (Exception de
    HRESULT : 0x80131417

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    ça veut dire que les autorisations de sécurité que ton assembly demande ne sont pas accordées à l'utilisateur qui lance l'application. Tu essaies d'exécuter ton programme avec un compte invité ? une machine avec des droits limités ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    merci pour ta réactivité

    j'ai déjà envisagé cette possibilité et donc j'ai fait mes tests sur un compte administrateur pour éviter ce genre de pb.

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ton application tu l'exécute bien à partir d'un emplacement local (disque C: et tout et tout) et pas à partir d'un emplacement distant, sur un réseau ?

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    oui bien-sur

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    ta dll a telle changé de version en cours de route ?
    si oui, il faut recompilé la dll certes, mais surtout le programme appelant...
    surtout si la dll a été signée numériquement, ou enregistré dans le GAC.
    dans le cas du GAC il faudra envisager d'enregistrer la nouvelle à la place de l'ancienne

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    On m'a parlé également de GAC. Je vais me renseigner sur ce que c'est.

    Mais je pensais qu'en ajoutant le projet créant la dll dans les références (Visual C++ 2005), que l'application et les dll générées auraient des signatures compatibles

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    tout dépend si tu change la version d'une dll en cours de route ou non.
    même si le fichier change mais la version et toujours la meme, tu peux changer la dll comme tu le souhaite, en revanche dès que tu change le buildcode de la dll, son nom pleinement qualifié change également, ce qui remet completement en cause le lien entre ton application et la dll.

    N'oublie pas que quand tu fait Ajouter Référence, tu fait une liaison de type 'statique' et forte, autogérée par le système, il sera donc regardant à la moindre virgule...
    si tu utilise la liaison tardive (charger l'assembly dynamiquement) là les choses sont différentes, tu peux ignorer totalement le nom pleinement qualifié et la signature de la dll, en contrepartie... les types fourni par la dll ne sont pas connus à la compilation, et tu dois te tapper de la Reflexion à tout va.

    Quand je parle du changement de version j'entend dans le répertoire où sont stocké les binaires. Si la version de la dll change, il faut impérativement recompiler le projet qui en dépend avec la nouvelle version.

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    merci, je vais essayer une liaison tardive pour voir.

Discussions similaires

  1. SDL programme a cessé de fonctionner
    Par czar1983 dans le forum SDL
    Réponses: 12
    Dernier message: 20/07/2013, 16h52
  2. Mon programme Qt cesse de fonctionner
    Par Pouknouki dans le forum Débuter
    Réponses: 2
    Dernier message: 19/07/2013, 12h13
  3. Programme a cessé de fonctionner
    Par Divelopiz dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/07/2012, 12h05
  4. Le programme a cessé de fonctionner
    Par kryptong dans le forum Débuter
    Réponses: 13
    Dernier message: 31/03/2012, 14h45
  5. le programme a cessé de fonctionner
    Par ghost_23 dans le forum Windows Vista
    Réponses: 1
    Dernier message: 13/10/2009, 22h40

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