Comment obtenir le chemin de csc.exe?

Existe-t-il un moyen d’obtenir le chemin d’access à la dernière version de .NET Framework csc.exe?

Le fichier se trouve généralement dans: c: \ Windows \ Microsoft.NET \ Framework \ vX.X.XXX mais le problème est qu’il peut y avoir plusieurs versions installées + il existe des versions 32 et 64 bits.

Une solution à cela?

    c: \ Windows \ Microsoft.NET \ Framework \ vX.X.XXX Doit contenir la dernière version 32 bits de csc.exe

    c: \ Windows \ Microsoft.NET \ Framework64 \ vX.X.XXX Doit contenir la dernière version 64 bits de csc.exe

    C’est ce que c’est pour le mien de toute façon.

    BTW: Vous pouvez accéder aux deux en utilisant la ligne de commande Visual Studio à partir de votre dossier Visual Studio Tools dans vos fichiers de programme. Il configure automatiquement tous les chemins nécessaires pour créer des applications 32 et 64 bits avec votre compilateur csc.

    Vous pouvez utiliser System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory() .

     using System.Runtime.InteropServices; var frameworkPath = RuntimeEnvironment.GetRuntimeDirectory(); var cscPath = Path.Combine(frameworkPath, "csc.exe"); Console.WriteLine(frameworkPath); // C:\Windows\Microsoft.NET\Framework\v4.0.30319 Console.WriteLine(cscPath); } // C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe 

    La meilleure façon de trouver le chemin d’access CSC.exe est d’exécuter en CLI (interpréteur de ligne de commande) cette ligne simple:

     dir /s %WINDIR%\CSC.EXE 

    dir – montre le répertoire

    / s – inclut les sous-dossiers

    % WINDIR% \ CSC.EXE – recherche dans le dossier racine la phrase “CSC.exe”.

    Et c’est notre résultat: entrer la description de l'image ici

    Ensuite, nous pouvons simplement comstackr un exemple de code par ligne comme:

     C:\WINDOWS\...\v.4.0.30319\CSC.exe HelloWorld.cs 

    Cordialement.

    Actualisé:

    Ouvrez l’invite de commandes ou Powershell et exécutez la commande ci-dessous pour répertorier le chemin complet des compilateurs pour différentes versions de .Net Frameworks installées.

    dir %WINDIR%\Microsoft.NET\Framework64\csc.exe /s/b

    Le chemin CSC est le suivant:

    C: \ Program Files \ MSBuild \\ Bin

    Ex: Ce sera 12.0, si vous utilisez Visual Studio 2013.

    Si vous avez déjà installé Visual Studio, procédez comme suit: Cliquez sur Démarrer, pointez sur Tous les programmes, sur Microsoft Visual Studio, sur Visual Studio Tools, puis cliquez sur Invite de commandes Visual Studio et cochez la case suivante:

     csc PathToYourCsSource 

    Microsoft a bien documenté cela récemment – vérifiez ici

    Le fichier exécutable csc.exe se trouve généralement dans le dossier Microsoft.NET \ Framework \ sous le répertoire Windows. Son emplacement peut varier en fonction de la configuration exacte d’un ordinateur particulier. Si plusieurs versions du .NET Framework sont installées sur votre ordinateur, vous trouverez plusieurs versions de ce fichier.

    Je suppose que vous voulez utiliser csc.exe pour comstackr des fichiers, c’est pourquoi vous demandiez le chemin. Plutôt que de regarder dans le registre à cet effet, vous pouvez utiliser le petit script de commandes que j’ai créé pour obtenir le chemin d’access au dernier fichier csc.exe disponible:

     @echo off set dotNetBase=%SystemRoot%\Microsoft.NET\Framework\ rem get latest .net path containing csc.exe: set dotNet20=%dotNetBase%v2.0.50727\ set dotNet35=%dotNetBase%v3.5\ set dotNet40=%dotNetBase%v4.0.30319\ if exist %dotNet20%nul set dotNet=%dotNet20% if exist %dotNet35%nul set dotNet=%dotNet35% if exist %dotNet40%nul set dotNet=%dotNet40% set outPath=%~DP1 set outFileName=%~n1 "%dotNet%csc.exe" /t:exe /out:%outPath%%outFileName%.exe %1 

    Enregistrez-le sous ComstackCS.cmd et placez-le dans le même chemin que vos fichiers * .cs. Ensuite, vous pouvez simplement le comstackr comme suit:

    ComstackCS GetDotNetVersion.cs

    Qui va comstackr l’application console GetDotNetVersion, un programme pour déterminer les versions .NET installées, que j’ai publiées ici.

    Astuce: Si vous voulez exécuter l’application C # automatiquement après la compilation, ajoutez
    %outPath%%outFileName%.exe
    à la fin du script de lot.

    Le script vérifie l’existence des répertoires système pour .NET 2.0.x, 3.5 et 4.0.30319 – dans d’autres dossiers que je n’ai jamais vus csc.exe. Comme il effectue la vérification de la version la plus ancienne à la plus récente, la variable dotNet contient le dernier chemin existant.

    Notez que

    • Microsoft stocke toutes les versions 4.x de .NET – y compris la dernière version 4.7.1 – dans le dossier 4.0.30319. De ce fait, si une version de .NET 4.x est installée, vous la trouverez ici.

    • Si vous avez besoin de la version 64 bits plutôt que de la version 32 bits, remplacez simplement Framework par Framework64 dans la variable d’environnement dotNetBase (2ème ligne du script).

    • Bien que csc.exe existe toujours, il est limité à C # version 5 (vous recevrez cet avertissement chaque fois que vous invoquerez csc.exe). Mais pour beaucoup de petites applications de console utiles, C # 5 est toujours correct. Si vous avez besoin d’une version supérieure (C # 6 ou 7), vous aurez besoin de Visual Studio ou vous pouvez visiter la zone Roslyn GitHub pour obtenir le code source du compilateur Roslyn.