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

Чтобы вызвать компилятор C#, можно ввести имя исполняемого файла (csc.exe) в командной строке. Если используется командная строка Visual Studio (которую можно вызвать при помощи ярлыка в меню "Пуск" – "Visual Studio Tools"), то все необходимые переменные окружения уже будут заданы. В противном случае, потребуется изменить путь, так чтобы csc.exe можно было вызывать из любого подкаталога на компьютере. Если не используется командная строка Visual Studio, то чтобы задать переменные окружения для поддержки построения из командной строки, необходимо выполнить vsvars32.bat. Дополнительные сведения о vsvars32.bat см. в разделе Практическое руководство. Задание переменных среды.

При работе на компьютере, где установлен только Пакет средств разработки программного обеспечения (SDK) для Windows, компилятор C# можно использовать в командной строке, если используется Командная строка SDK, доступная через пункт меню Microsoft .NET Framework SDK.

Сведения о построении из среды разработки см. в разделе Практическое руководство. Подготовка сборок и управление ими.

MSBuild можно использовать для программного построения программ C#. Дополнительные сведения см. в разделе MSBuild.

Обычно, исполняемый файл csc.exe расположен в папке Microsoft.NET\Framework\<версия> в системном каталоге. Расположение файла может зависеть от конкретной конфигурации каждого отдельного компьютера. Если на компьютере установлено несколько версий .NET Framework, то будет доступно несколько версий этого исполняемого файла. Дополнительные сведения о подобных случаях установки см. в разделе Определение установленной версии платформы .NET Framework.

В этом разделе описано следующее:

Правила синтаксиса командной строки

Примеры команд командной строки

Различия между результатами компилятора C# и компилятора C++

Правила для синтаксиса командной строки для компилятора C#

Компилятор C# придерживается следующих правил при обработке аргументов, вводимых в командной строке операционной системы.

  • Аргументы разделяются пробелами (пробел или табуляция).

  • Символ каретки (^) не воспринимается как escape-символ или разделитель. Этот символ обрабатывается синтаксическим анализатором командной строки в операционной системе, прежде чем передается в массив argv программы.

  • Строка, заключенная в двойные прямые кавычки ("строка") обрабатывается как отдельный аргумент, независимо от пробелов, которые могут в ней присутствовать. Строку в кавычках можно встроить в аргумент.

  • Символ двойной кавычки после обратной косой черты (\") обрабатывается как символ двойной кавычки литерала (").

  • Символы обратной косой черты обрабатываются буквально, если только им не предшествует двойная кавычка.

  • Если перед четным числом символов обратной косой черты стоит двойная кавычка, один символ косой черты помещается в массив argv для каждой пары символов обратной косой черты, и прямая кавычка обрабатывается как разделитель строки.

  • Если перед нечетным числом символов обратной косой черты стоит двойная кавычка, один символ косой черты помещается в массив argv для каждой пары символов обратной косой черты, и прямая кавычка "исключается" оставшимся символом обратной косой черты. При этом двойная кавычка литерала (") добавляется в argv.

Примеры команд командной строки для компилятора C#

  • Компиляция файла File.cs в файл File.exe:

    csc File.cs 
    
  • Компиляция файла File.cs в файл File.dll:

    csc /target:library File.cs
    
  • Компиляция файла File.cs и создание файла My.exe:

    csc /out:My.exe File.cs
    
  • Компиляция всех файлов C# в текущем каталоге с оптимизацией и определением символа DEBUG. Результат File2.exe:

    csc /define:DEBUG /optimize /out:File2.exe *.cs
    
  • Компиляция всех файлов C# в текущем каталоге с созданием версии отладки файла File2.dll. Отключение отображения логотипа и предупреждений:

    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
    
  • Компиляция всех файлов C# в текущем каталоге в файл Something.xyz (библиотека DLL):

    csc /target:library /out:Something.xyz *.cs
    

Различия между результатами компилятора C# и компилятора C++

В результате вызова компилятора C# файлы объектов (OBJ) не создаются; выходные файлы создаются непосредственно. Таким образом, компилятору C# не требуется средство связывания.

См. также

Ссылки

Параметры компилятора C# в алфавитном порядке

Параметры компилятора C#, упорядоченные по категориям

Другие ресурсы

Параметры компилятора C#