Построение из командной строки с помощью csc.exeCommand-line build with csc.exe

Чтобы вызвать компилятор C#, следует ввести имя соответствующего исполняемого файла (csc.exe) в командной строке.You can invoke the C# compiler by typing the name of its executable file (csc.exe) at a command prompt.

Если используется окно Командная строка разработчика для Visual Studio, все необходимые переменные среды устанавливаются автоматически.If you use the Developer Command Prompt for Visual Studio window, all the necessary environment variables are set for you. Дополнительные сведения о получении доступа к этому инструменту см. в статье Командная строка разработчика для Visual Studio.For information on how to access this tool, see the Developer Command Prompt for Visual Studio topic.

Если используется стандартное окно командной строки, необходимо изменить путь к файлу csc.exe, прежде чем вызывать его из любого подкаталога на компьютере.If you use a standard Command Prompt window, you must adjust your path before you can invoke csc.exe from any subdirectory on your computer. Чтобы задать соответствующие переменные среды для поддержки построения из командной строки, необходимо запустить пакетный файл vsvars32.bat.You also must run vsvars32.bat to set the appropriate environment variables to support command-line builds. Дополнительные сведения о файле vsvars32.bat, включая инструкции по его поиску и запуску, см. в разделе Практическое руководство. Настройка переменных среды для командной строки Visual Studio.For more information about vsvars32.bat, including instructions for how to find and run it, see How to: Set Environment Variables for the Visual Studio Command Line.

Если на вашем компьютере установлен только пакет Windows SDKWindows Software Development Kit (SDK), компилятор C# можно использовать из командной строки SDK, которая открывается через пункт меню Microsoft .NET Framework SDK.If you're working on a computer that has only the Windows SDKWindows Software Development Kit (SDK), you can use the C# compiler at the SDK Command Prompt, which you open from the Microsoft .NET Framework SDK menu option.

Для программного построения программ C# можно также использовать средство MSBuild.You can also use MSBuild to build C# programs programmatically. Дополнительные сведения см. в разделе MSBuild.For more information, see MSBuild.

Обычно исполняемый файл csc.exe расположен в папке Microsoft.NET\Framework\<версия> в каталоге Windows.The csc.exe executable file usually is located in the Microsoft.NET\Framework\<Version> folder under the Windows directory. Расположение файла может зависеть от конкретной конфигурации компьютера.Its location might vary depending on the exact configuration of a particular computer. Если на компьютере установлено несколько версий .NET Framework, будет несколько версий этого файла.If more than one version of the .NET Framework is installed on your computer, you'll find multiple versions of this file. Дополнительные сведения о подобных вариантах установки см. в разделе Практическое руководство. Определение установленных версий платформы .NET Framework.For more information about such installations, see How to: determine which versions of the .NET Framework are installed.

Совет

При сборке проекта в интегрированной среде разработки Visual Studio можно открыть команду csc и связанные с ней параметры компилятора в окне Вывод.When you build a project by using the Visual Studio IDE, you can display the csc command and its associated compiler options in the Output window. Чтобы отобразить эту информацию, следуйте инструкциям в разделе Практическое руководство. Просмотр, сохранение и настройка файлов журнала сборки для изменения уровня детализации журнала на Обычный или Подробный.To display this information, follow the instructions in How to: View, Save, and Configure Build Log Files to change the verbosity level of the log data to Normal or Detailed. После сборки проекта выполните поиск по слову csc в окне Вывод, чтобы найти информацию о запуске компилятора C#.After you rebuild your project, search the Output window for csc to find the invocation of the C# compiler.

Содержание разделаIn this topic

Правила синтаксиса командной строки для компилятора C#Rules for command-line syntax for the C# compiler

Компилятор C# использует следующие правила при обработке аргументов, вводимых в командной строке операционной системы.The C# compiler uses the following rules when it interprets arguments given on the operating system command line:

  • Аргументы разделяются пробелами (пробел или табуляция).Arguments are delimited by white space, which is either a space or a tab.

  • Символ каретки (^) не воспринимается как escape-символ или разделитель.The caret character (^) is not recognized as an escape character or delimiter. Этот символ обрабатывается синтаксическим анализатором командной строки в операционной системе, прежде чем передается в массив argv программы.The character is handled by the command-line parser in the operating system before it's passed to the argv array in the program.

  • Строка, заключенная в двойные прямые кавычки ("строка"), обрабатывается как один аргумент, независимо от пробельных символов, которые могут в ней присутствовать.A string enclosed in double quotation marks ("string") is interpreted as a single argument, regardless of white space that is contained within. Строку в кавычках можно встроить в аргумент.A quoted string can be embedded in an argument.

  • Символ двойной кавычки после обратной косой черты (\") обрабатывается как символ двойной кавычки литерала (").A double quotation mark preceded by a backslash (\") is interpreted as a literal double quotation mark character (").

  • Символы обратной косой черты обрабатываются буквально, если только им не предшествует двойная кавычка.Backslashes are interpreted literally, unless they immediately precede a double quotation mark.

  • Если после четного числа символов обратной косой черты стоит двойная кавычка, в массив argv помещается по одному символу обратной косой черты () для каждой пары символов обратной косой черты (\), а двойная кавычка (") обрабатывается как разделитель строки.If an even number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is interpreted as a string delimiter.

  • Если после нечетного числа символов обратной косой черты стоит двойная кавычка, в массив argv помещается по одному символу обратной косой черты () для каждой пары символов обратной косой черты (\), а двойная кавычка (") "изолируется" с помощью оставшихся косых черт.If an odd number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is "escaped" by the remaining backslash. В результате литеральный символ двойной кавычки (") добавляется в массив argv.This causes a literal double quotation mark (") to be added in argv.

Примеры командных строк для компилятора C#Sample command lines for the C# compiler

  • Компиляция File.cs и создание File.exe:Compiles File.cs producing File.exe:
csc File.cs 
  • Компиляция File.cs и создание File.dll:Compiles File.cs producing File.dll:
csc -target:library File.cs
  • Компиляция File.cs и создание My.exe:Compiles File.cs and creates My.exe:
csc -out:My.exe File.cs
  • Компиляция всех файлов C# в текущем каталоге с включенными оптимизациями и определение символа DEBUG.Compiles all the C# files in the current directory with optimizations enabled and defines the DEBUG symbol. Выводится файл File2.exe:The output is File2.exe:
csc -define:DEBUG -optimize -out:File2.exe *.cs
  • Компиляция всех файлов C# в текущем каталоге с созданием отладочной версии File2.dll.Compiles all the C# files in the current directory producing a debug version of File2.dll. Логотипы и предупреждения не отображаются:No logo and no warnings are displayed:
csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs
  • Компиляция всех файлов C# в текущем каталоге в файл Something.xyz (библиотеку DLL):Compiles all the C# files in the current directory to Something.xyz (a DLL):
csc -target:library -out:Something.xyz *.cs

Различия между выходными данными компилятора C# и компилятора C++Differences between C# compiler and C++ compiler output

В результате вызова компилятора C# файлы объектов (OBJ-файлы) не создаются; выходные файлы создаются непосредственно.There are no object (.obj) files created as a result of invoking the C# compiler; output files are created directly. По этой причине компилятору C# не требуется компоновщик.As a result of this, the C# compiler does not need a linker.

См. такжеSee also

Параметры компилятора C# C# Compiler Options
Параметры компилятора C# в алфавитном порядкеC# Compiler Options Listed Alphabetically
Параметры компилятора C#, упорядоченные по категориямC# Compiler Options Listed by Category
Main() и аргументы командной строкиMain() and Command-Line Arguments
Аргументы командной строкиCommand-Line Arguments
Практическое руководство. Отображение аргументов командной строкиHow to: Display Command-Line Arguments
Практическое руководство. Доступ к аргументам командной строки с помощью оператора foreachHow to: Access Command-Line Arguments Using foreach
Значения, возвращаемые методом main()Main() Return Values