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 :

Exe en \bin\Release\net6.0-windows qui ne se lance que dans le dossier


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut Exe en \bin\Release\net6.0-windows qui ne se lance que dans le dossier
    Salut,

    Lorsque je génère mon code C# l'appli Microsoft Visual Studio génère un exe seulement en \bin\Release\net6.0-windows.
    Si je déplace l'exe dans un autre dossier du PC, il ne se lance pas.
    Alors qu'il y a quelques jours l'appli générait bien un exe en \bin\Release, sur le même code, qui ce lançait partout.

    Est-ce possible de générer l'exe qui fonctionne partout ?

    Merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Je pense que c'est juste une question de paramétrages mais je m'arrache les cheveux à trouver.

    Je fais des comparaisons avec d'autres projets qui eux crée bien des exe que je peux lancer depuis n'importe où sur le pc, sans succès.

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 721
    Points : 5 366
    Points
    5 366
    Par défaut
    Un projet C# en .Net 6 produit rarement un exe seul.
    Rien que sur une application console contenant uniquement la ligne Console.WriteLine("Hello");, j'ai déjà une DLL et un fichier JSON à coté.

    Les as-tu copié ?

    Quand tu dis que ça ne se lance pas, est-ce bien le cas où alors ça s'ouvre et se referme tout de suite ?
    As-tu un message d'erreur ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Salut,
    L'appli ne se lance pas, sans aucun message. Effectivement il y a d'autres fichiers dans le dossier de l'exe (.dell, .json...).
    Puis-je transformer ce projet .Net 6 en un autre qui crée un .exe qui se lance partout sur mon pc ?

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 721
    Points : 5 366
    Points
    5 366
    Par défaut
    Sans rien savoir de ce projet, c'est compliqué de répondre de manière adaptée.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    C'est un projet que j'ai commencé sous c# avec Visual Studio, il a crée un exe en cliquant sur générer, l'exécutif se lançait, seul, sans problème sous les 3 PC du taf et le mien.

    J'ai lu ce topic : https://www.developpez.net/forums/d2.../#post11974651 enfin surtout ce potst : https://www.developpez.net/forums/d2.../#post11974651 et ai mis à jour Visual Studio "en Net", depuis lorsque je génére l'exécutif il me crée un dossier net6.0-windows en \bin\Release qui contient de multiples fichiers :
    - ***.deps.json
    - ***.dll.config
    - ***.dll
    - ***.pdb
    - ***.exe
    - ***.runtimeconfig.json

    Si je sors le fichier .exe du dossier, je ne peux pas le lancer.

    Je crois que j'ai updaté Visual Studio en .Net avec Microsoft.NET.UpgradeAssistant.vsix

    Désolé j'y connais rien c'est du chinois pour moi.

    Il faut peut-être que je désinstalle quelque chose avec Visual Studio Installer.

    -----



    Edit : j'ai désinstallé le Net 6 Runtime depuis Visual Studio Installer mais du coup Visual Studio ne veut plus ouvrir mon projet :

    Nom : error.png
Affichages : 177
Taille : 7,6 Ko

    Et si je réinstalle le Net 6 Runtime depuis Visual Studio Installer j'ai la même erreur avec une incompatibilité.
    Mon code est perdu ?

    -----


    Edit 2 : j'ai fait une vérification et maintenant je peux ouvrir la solution mais ça crée toujours les fichiers indiqués ci-dessus à savoir :
    - ***.deps.json
    - ***.dll.config
    - ***.dll
    - ***.pdb
    - ***.exe
    - ***.runtimeconfig.json

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    En fait je pense (j'en suis pas sur) que j'ai migrer de Framework 4.7.2 à Net Core mais que maintenant Visual Studio ne crée plus qu'un seul fichier (exe) par génération mais une demie-douzaine.
    Est-ce possible de repasser mon projet de Net Core à Framework ?

    Merci.

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 721
    Points : 5 366
    Points
    5 366
    Par défaut
    Citation Envoyé par babaOrhum Voir le message
    C'est un projet que j'ai commencé sous c# avec Visual Studio
    As-tu une idée du nombre types de projets différents que VS permet de créer ?
    Quel type tu as choisis ?

    Citation Envoyé par babaOrhum Voir le message
    J'ai lu ce topic : https://www.developpez.net/forums/d2.../#post11974651 enfin surtout ce potst : https://www.developpez.net/forums/d2.../#post11974651 et ai mis à jour Visual Studio "en Net", depuis lorsque je génére l'exécutif il me crée un dossier net6.0-windows en \bin\Release qui contient de multiples fichiers :
    - ***.deps.json
    - ***.dll.config
    - ***.dll
    - ***.pdb
    - ***.exe
    - ***.runtimeconfig.json
    Ce topic parle de la création d'un nouveau projet, pas de migration.
    La migration est un sujet complexe, on ne l'envisage pas quand, comme tu le dis, on y connait rien et que c'est du chinois.

    Citation Envoyé par babaOrhum Voir le message
    Si je sors le fichier .exe du dossier, je ne peux pas le lancer.
    Encore une fois, c'est un comportement normal.

    Citation Envoyé par babaOrhum Voir le message
    Je crois que j'ai updaté Visual Studio en .Net avec Microsoft.NET.UpgradeAssistant.vsix
    Mettre à jour Visual Studio, ne change pas la version de .Net d'un projet.

    Citation Envoyé par babaOrhum Voir le message
    Edit : j'ai désinstallé le Net 6 Runtime depuis Visual Studio Installer mais du coup Visual Studio ne veut plus ouvrir mon projet :

    Nom : error.png
Affichages : 177
Taille : 7,6 Ko

    Et si je réinstalle le Net 6 Runtime depuis Visual Studio Installer j'ai la même erreur avec une incompatibilité.
    Mon code est perdu ?
    Ce n'est la désinstallation qui provoque cette erreur.
    Lorsque tu ouvres un projet .net 6 et qu'i l n'est pas installé, VS t'ouvre un boite de dialogue te proposant plusieurs choix dont l'installation de .Net 6...
    Sur quel fichier tu cliques ?


    Citation Envoyé par babaOrhum Voir le message
    Edit 2 : j'ai fait une vérification et maintenant je peux ouvrir la solution mais ça crée toujours les fichiers indiqués ci-dessus à savoir :
    - ***.deps.json
    - ***.dll.config
    - ***.dll
    - ***.pdb
    - ***.exe
    - ***.runtimeconfig.json
    Refaire sans arrêt la même chose de manière identique et s'attendre à un résultat différent, c'est la définition de la folie.
    Un projet .Net 6 a besoin de ces fichiers pour fonctionner (au minimum la DLL et le runtimeconfig.json).
    Lorsque tu achètes une voiture, le concessionnaire fournit la voiture complète et pas uniquement le moteur.
    Si tu n'en veut pas de ce comportement, reste en Framework.
    J'ajouterai que si tu utilises une librairie, il faudra également la copier (c'est de l'informatique, pas de la magie).

    Citation Envoyé par babaOrhum Voir le message
    En fait je pense (j'en suis pas sur) que j'ai migrer de Framework 4.7.2 à Net Core mais que maintenant Visual Studio ne crée plus qu'un seul fichier (exe) par génération mais une demie-douzaine.
    Est-ce possible de repasser mon projet de Net Core à Framework ?

    Merci.
    Il n'existe pas à ma connaissance de procédure simple pour migrer de Framework vers Core, alors l'inverse...
    Sans savoir ce que tu as fait, personne ne pourra t'aider.
    Et vouloir passer de Core à Framework est un non sens.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Salut,

    Merci de cette réponse complète, je suis donc bloqué. :/
    On peut intégrer tous ces fichiers dans l'exe ?
    Si ce n'est pas possible tant pis pour cette fois.


    Puis-je cependant créer un exe (et seulement un exe) avec Visual Studio en c# (comme je faisais avant) ?
    Et sans crée un dossier "net6.0-windows".

    Merci encore du temps passé avec moi.

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 232
    Points : 1 798
    Points
    1 798
    Par défaut
    En quoi c'est bloquant? il faut copier aussi les autres fichiers et c'est tout. (au "pire", tu fais fais un zip des fichiers)

    Avec ton extension Microsoft.NET.UpgradeAssistant.vsix, tu as converti ton projet initial en .NET6, d'où les nouveaux fichiers lors de la compilation.
    Si tu veux repartir comme avant, récupère une sauvegarde de ton projet d'avant la conversion, et poursuit le développement en utilisant le même .NET Framework qu'à l'origine.
    VisualStudio permet toujours (pour le moment) d'utiliser soit .NET (Core) soit .NET Framework

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Salut unfred,

    C'est très intéressant.

    Où puis-je récupérer une sauvegarde de mon projet ? (perso, je n'en ai pas faite).

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    J'ai réussi à créer un exe qui se lance de n'importe où sur mon PC sans avoir besoin d'autres fichiers.

    J'ai indiqué :

    Nom : 0.png
Affichages : 114
Taille : 15,0 Ko

    Nom : 1.png
Affichages : 109
Taille : 17,3 Ko

    Nom : 2.png
Affichages : 111
Taille : 15,0 Ko

    Nom : 3.png
Affichages : 110
Taille : 18,5 Ko

    Par contre l'exe fait plus de 134 Mo ! Mais c'est déjà beaucoup mieux !

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 232
    Points : 1 798
    Points
    1 798
    Par défaut
    Citation Envoyé par babaOrhum Voir le message
    Salut unfred,

    C'est très intéressant.

    Où puis-je récupérer une sauvegarde de mon projet ? (perso, je n'en ai pas faite).
    Bah si tu ne l'as pas faite, nous, on ne peut rien faire (si tu es en entreprise et que le projet était sur un espace sauvegardé, tu peux peut-être demandé une restauration à la date précédent ta modification, ou si utilisation d'un logiciel de versioning, tu dois aussi pouvoir revenir en arrière)

    Edit: je me demandais si à tout hasard, il n'y aurait pas un dossier backup dans le projet que l'extension aurait créée lors de la migration ?

    Citation Envoyé par babaOrhum Voir le message
    J'ai réussi à créer un exe qui se lance de n'importe où sur mon PC sans avoir besoin d'autres fichiers.


    Par contre l'exe fait plus de 134 Mo ! Mais c'est déjà beaucoup mieux !
    Bah oui, tu embarques toutes les bibliothèques .NET utilisées par ton projet, donc forcément ça prend du poids. Si tes utilisateurs ont le .NET d'installer, j'insiste, pourquoi ne pas faire un zip des fichiers et demander de dézipper dans le bon répertoire côté utilisateur.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Je ne peux rien installer de téléchargé au boulot, je "code" de chez moi pour simplifier le taf des collègues et la mienne. (gratis au passage pour le patron). Les applis sont là pour nous aider.

    Il n'y a pas de dossier backup après migration mais c'était bien vu.

    Citation Envoyé par umfred Voir le message
    Bah oui, tu embarques toutes les bibliothèques .NET utilisées par ton projet, donc forcément ça prend du poids. Si tes utilisateurs ont le .NET d'installer, j'insiste, pourquoi ne pas faire un zip des fichiers et demander de dézipper dans le bon répertoire côté utilisateur.
    Mon projet n'utilise pas beaucoup de bibliothèques ( using System;
    using System.Drawing; using System.Windows.Forms, puis-je faire des sélections pour réduire la taille de l'exe ?

    Merci.

  15. #15
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 721
    Points : 5 366
    Points
    5 366
    Par défaut
    System, System.Drawing et System.Windows.Forms ne sont pas des librairies obscures téléchargées sur le Net, elle font partie du standard.

    Ton exe tient autant de place car il embarque tout ce qu'il a besoin.
    Ce implique également le standard .Net qui n'est pas forcément nécessaire puisqu'il est potentiellement déjà installé sur la machine cible.

    Un petit calcul vite fait.
    System : 3.38 Mo
    System.Drawing : 0,59 Mo
    System.Windows.Forms : 5.64Mo

    Avec ton exe cela doit représenter à peu près 10Mo.

    Donc trois, choix s'offrent à toi :
    • Rester avec ton exe de 134Mo qui fonctionnera de manière indépendante.
    • Copier les DLL avec ton exe (fonctionnera si la version de .Net est présente sur la machine cible, sinon il faudra l'installer).
    • Faire un projet en Framework dans une version dont tu es certain qu'elle est présente sur la machine cible (4.5 sera présent sur Windows 7 par défaut, 4.7 sera présente sur un Windows 10 par défaut, 4.8 sera présent par défaut sur les Windows sortis après mai 2019).

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    J'ai choisi : "Rester avec ton exe de 134Mo"
    Merci.

Discussions similaires

  1. [WD12] Probleme de génération de DLLs au lancement d'un exe
    Par Minos2 dans le forum WinDev
    Réponses: 3
    Dernier message: 06/10/2011, 11h51
  2. Inclusion d'une DLL dans un exe?
    Par luareon22 dans le forum MFC
    Réponses: 10
    Dernier message: 29/08/2005, 12h08
  3. Inclure une DLL dans le .exe final?? possible?
    Par xavmax dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2005, 17h00
  4. modifier l'adresse d'un dll dans un .exe
    Par Mr Meuble dans le forum Windows
    Réponses: 4
    Dernier message: 02/03/2004, 16h39
  5. [Dev-Pascal] Ne produit pas d'exe
    Par portix dans le forum Autres IDE
    Réponses: 8
    Dernier message: 02/07/2003, 15h14

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