¿Cómo obtener la ruta csc.exe?

¿Hay alguna manera de obtener el camino para el último csc.exe de .NET Framework?

El archivo generalmente está en: c: \ Windows \ Microsoft.NET \ Framework \ vX.X.XXX pero el problema es que puede haber múltiples versiones instaladas + hay versiones de 32 y 64 bits.

¿Alguna solución para esto?

c: \ Windows \ Microsoft.NET \ Framework \ vX.X.XXX Debe contener la última versión de 32 bits de csc.exe

c: \ Windows \ Microsoft.NET \ Framework64 \ vX.X.XXX Debe contener la última versión de 64 bits de csc.exe

Eso es lo que es para el mío de todos modos.

Por cierto: puede acceder a ambos usando la línea de comandos de Visual Studio desde su carpeta de herramientas de estudio visual en sus archivos de progtwig. Configura automáticamente todas las rutas que necesita para comstackr aplicaciones de 32 y 64 bits con su comstackdor de csc.

Puede usar 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 mejor forma de encontrar la ruta de CSC.exe es ejecutando en CLI (intérprete de línea de comandos) esa línea simple:

 dir /s %WINDIR%\CSC.EXE 

dir – muestra el directorio

/ s – incluye subcarpetas

% WINDIR% \ CSC.EXE: busca en la carpeta raíz una frase como “CSC.exe”.

Y es nuestro resultado: enter image description here

Entonces podemos simplemente comstackr ejemplo código por línea como:

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

Saludos.

Actualizado:

Abra el símbolo del sistema o Powershell y ejecute el siguiente comando para listar la ruta completa de los comstackdores para diferentes versiones de .Net Frameworks instaladas.

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

CSC Path es el siguiente:

C: \ Archivos de progtwig \ MSBuild \\ Bin

Ejemplo: será 12.0 si usa Visual Studio 2013.

Si ya instaló Visual Studio, simplemente: haga clic en Inicio, señale Todos los progtwigs, señale Microsoft Visual Studio, señale Visual Studio Tools y luego haga clic en Símbolo del sistema de Visual Studio y allí tendrá su cuadro de línea de comando donde comstackrá de la siguiente manera:

 csc PathToYourCsSource 

Microsoft lo ha documentado bien recientemente. Consulte aquí

El archivo ejecutable csc.exe generalmente se encuentra en la carpeta Microsoft.NET \ Framework \ en el directorio de Windows. Su ubicación puede variar según la configuración exacta de una computadora en particular. Si hay más de una versión de .NET Framework instalada en su computadora, encontrará múltiples versiones de este archivo.

Supongo que quiere usar csc.exe para comstackr archivos, por eso estaba pidiendo la ruta. En lugar de buscar en el registro para este fin, puede usar la siguiente secuencia de comandos por lotes que he creado para obtener la ruta de la última versión de 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 

CompileCS.cmd como CompileCS.cmd y póngalo en la misma ruta que sus archivos * .cs. Entonces puedes simplemente comstackrlo de la siguiente manera:

CompileCS GetDotNetVersion.cs

Que comstackrá la aplicación de consola GetDotNetVersion, un progtwig para determinar las versiones de .NET instaladas, que he publicado aquí.

Sugerencia: si desea ejecutar la aplicación C # automáticamente después de la comstackción, agregue
%outPath%%outFileName%.exe
hasta el final del script por lotes.

El script verifica la existencia de los directorios del sistema para .NET 2.0.x, 3.5 y 4.0.30319 – en otras carpetas nunca he visto csc.exe. Como hace la comprobación de la versión más antigua a la más reciente, la variable dotNet contiene la última ruta existente.

Tenga en cuenta que

  • Microsoft almacena todas las versiones 4.x de .NET, incluida la última versión 4.7.1, en la carpeta 4.0.30319. Por eso, si hay instalada alguna versión de .NET 4.x, la encontrará allí.

  • Si necesita la versión de 64 bits en lugar de la versión de 32 bits, simplemente reemplace Framework by Framework64 en la variable de entorno dotNetBase (segunda línea del script).

  • Si bien csc.exe todavía existe, está restringido a C # versión 5 (recibirá esta advertencia cada vez que invoque csc.exe). Pero para muchas aplicaciones de consola poco útiles, C # 5 todavía está bien. Si necesita una versión superior (C # 6 o 7), necesitará Visual Studio o puede visitar el área Roslyn GitHub para obtener el código fuente del comstackdor Roslyn.