none
Comment avoir l'exe d'une aplication c++ qui utilise des DLLs .NET? RRS feed

  • Question

  • J'ai créé une application win32 avec le C++ en utilisant VISUAL STUDIO 2010.

    Dans cette application j'ai fait recours à des dll du framework .NET 4.0 (System.dll, System.Drawing.dll, System.Windows.Forms.dll). Maintenant je cherche à généré le fichier executable .exe qui peut être exécuté sur n'importe qu'elle machine (bien sure avec Windows) mais ne disposant pas du framework .NET.

    Le problème est que la compilation même en mode release ne permet pas à une machine ne disposant pas du framework .NET 4.0 d'utiliser mon application (c'est logique! l'application ne trouve pas les références dans l'assembly) mais je doit avoir une solution pour le faire sans être obligé d'installer le framework .NET 4.0 dans toutes les machines cibles.

    Comment je peux faire pour résoudre ce problème? (exemple, exporter les DLL dans le exe ou quelque chose de ce genre!)

    Merci d'avance

    jeudi 4 novembre 2010 14:16

Réponses

  • Bonjour,

    il existe un outil NGen qui permet d'obtenir une image en code machine spécifique au processeur cible (qui permet de s'affranchir de la compilation JIT, et donc la plus part du temps cela permet simplement de gagner un peu de temps au démarrage de l'appli ). Cependant cela ne permet pas de s'affranchir de l'installation du framework sur le poste cible.

    Je ne connais pas d'outil pour votre besoin mais une recherche permet de trouver l'outil Salamander .NET Linker qui semble répondre à votre problèmatique.

    Une remarque néanmoins : le framework est désormais fréquement présent sur les postes puisqu'il est présent sur vista et seven ou installé via les services pack.

    Cordialement

    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 12:32
    jeudi 4 novembre 2010 14:59
    Modérateur
  • Bonjour,

     

    Une application contenant du code managé ne peut pas être lancé sans avoir le .NET Framework installé.

     

    Des applications de tierce partie peuvent implémenter telles solutions, mais pour ce type de fonctionnalité ou de support vous devez vous adresser aux distributeurs ou développeurs de ces applications.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 09:56
    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 12:32
    lundi 8 novembre 2010 09:55

Toutes les réponses

  • Bonjour,

    J'ai créé une application win32 avec le C++ en utilisant VISUAL STUDIO 2010.

    Dans cette application j'ai fait recours à des dll du framework .NET 4.0 (System.dll, System.Drawing.dll, System.Windows.Forms.dll). Maintenant je cherche à généré le fichier executable .exe qui peut être exécuté sur n'importe qu'elle machine (bien sure avec Windows) mais ne disposant pas du framework .NET.

    Le problème est que la compilation même en mode release ne permet pas à une machine ne disposant pas du framework .NET 4.0 d'utiliser mon application (c'est logique! l'application ne trouve pas les références dans l'assembly) mais je doit avoir une solution pour le faire sans être obligé d'installer le framework .NET 4.0 dans toutes les machines cibles.

    Comment je peux faire pour résoudre ce problème? (exemple, exporter les DLL dans le exe ou quelque chose de ce genre!)

    Merci d'avance

    jeudi 4 novembre 2010 14:15
  • Bonjour,

    il existe un outil NGen qui permet d'obtenir une image en code machine spécifique au processeur cible (qui permet de s'affranchir de la compilation JIT, et donc la plus part du temps cela permet simplement de gagner un peu de temps au démarrage de l'appli ). Cependant cela ne permet pas de s'affranchir de l'installation du framework sur le poste cible.

    Je ne connais pas d'outil pour votre besoin mais une recherche permet de trouver l'outil Salamander .NET Linker qui semble répondre à votre problèmatique.

    Une remarque néanmoins : le framework est désormais fréquement présent sur les postes puisqu'il est présent sur vista et seven ou installé via les services pack.

    Cordialement

    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 12:32
    jeudi 4 novembre 2010 14:59
    Modérateur
  • Bonjour,

     

    Une application contenant du code managé ne peut pas être lancé sans avoir le .NET Framework installé.

     

    Des applications de tierce partie peuvent implémenter telles solutions, mais pour ce type de fonctionnalité ou de support vous devez vous adresser aux distributeurs ou développeurs de ces applications.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 09:56
    • Marqué comme réponse Alex Petrescu lundi 8 novembre 2010 12:32
    lundi 8 novembre 2010 09:55