Компиляция / выполнение исходного файла C # в командной строке
Как скомпилировать и выполнить файл .cs из окна командной строки?
10 ответов
CSC.exe — это компилятор CSharp, включенный в .NET Framework, и его можно использовать для компиляции из командной строки. Выводом может быть исполняемый файл (.exe), если вы используете /target: exe, или DLL, если вы используете /target: library. Файл CSC.exe находится в каталоге .NET Framework, например, для .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\ .
Чтобы запустить его, сначала откройте командную строку (нажмите Пуск. затем введите cmd.exe ). Затем вам может понадобиться перейти в каталог, содержащий ваши исходные файлы.
Запустите компилятор С# следующим образом:
(все в одной строке)
Если у вас есть более одного исходного модуля для компиляции, вы можете поместить его в эту же командную строку. Если у вас есть другие сборки для справки, используйте /r:AssemblyName.dll .
Убедитесь, что у вас есть статический метод Main(), определенный в одном из ваших классов для работы в качестве «точки входа».
Чтобы запустить полученный EXE- MyApplication , просто введите MyApplication а затем <ENTER> в командной строке.
В этой статье о MSDN более подробно рассматриваются параметры компилятора командной строки. Вы можете встраивать ресурсы, устанавливать значки, подписывать сборки — все, что вы можете делать в Visual Studio.
Если у вас установлена Visual Studio, в меню «Пуск» (в разделе «Инструменты Visual Studio») вы можете открыть «Командную строку Visual Studio», которая установит все необходимые переменные среды и пути для компиляции из командной строки.
Хотя это очень удобно знать, вы должны сочетать его со знанием какого-либо инструмента сборки, такого как NAnt, MSBuild, FinalBuilder и т.д. Эти инструменты предоставляют полную среду сборки, а не только базовый компилятор.
На Mac
На Mac синтаксис похож, только компилятор C sharp просто называется csc :
Как запустить cs файл из командной строки
Что делать, если не установлена Visual Studio, но так хочется что-нибуль скомпилировать.
Если установлена платформа NET и установлен .NET SDK, то это не проблема. Приложения можно скомпилировать из командной строки, воспользовавшись утилитой csc.exe . Найти эту утилиту можно в каталоге C:\Windows\Microsoft.NET\Framework\[Требуемая версия].
Для начала напишем в любом текстовом редакторе простое приложение и сохраним его в файл HelloWorld.cs:
Теперь скомпилируем и запустим его. Допустим, путь в командной строке установлен на текущий каталог нашего файла HelloWorld.cs. Тогда введем в командную строку следующую команду (в данном случае у меня установлен 4-й фреймворк в папке v4.0.30319):
Если ошибок при компиляции не возникло, то в одном каталоге с HelloWorld.cs мы увидим скомпилированный файл HelloWorld.exe.
Параметры компиляции
Компилятор может принимать следующие выходные параметры:
Присваивает имя выходной сборки. По умолчанию присваивается то же имя, что и у файла кода cs
Компиляция / выполнение исходного файла C # в командной строке
Как скомпилировать и выполнить файл .cs из окна командной строки?
10 ответов
CSC.exe — это компилятор CSharp, включенный в .NET Framework, и его можно использовать для компиляции из командной строки. Выводом может быть исполняемый файл (.exe), если вы используете /target: exe, или DLL, если вы используете /target: library. Файл CSC.exe находится в каталоге .NET Framework, например, для .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\ .
Чтобы запустить его, сначала откройте командную строку (нажмите Пуск. затем введите cmd.exe ). Затем вам может понадобиться перейти в каталог, содержащий ваши исходные файлы.
Запустите компилятор С# следующим образом:
(все в одной строке)
Если у вас есть более одного исходного модуля для компиляции, вы можете поместить его в эту же командную строку. Если у вас есть другие сборки для справки, используйте /r:AssemblyName.dll .
Убедитесь, что у вас есть статический метод Main(), определенный в одном из ваших классов для работы в качестве «точки входа».
Чтобы запустить полученный EXE- MyApplication , просто введите MyApplication а затем <ENTER> в командной строке.
В этой статье о MSDN более подробно рассматриваются параметры компилятора командной строки. Вы можете встраивать ресурсы, устанавливать значки, подписывать сборки — все, что вы можете делать в Visual Studio.
Если у вас установлена Visual Studio, в меню «Пуск» (в разделе «Инструменты Visual Studio») вы можете открыть «Командную строку Visual Studio», которая установит все необходимые переменные среды и пути для компиляции из командной строки.
Хотя это очень удобно знать, вы должны сочетать его со знанием какого-либо инструмента сборки, такого как NAnt, MSBuild, FinalBuilder и т.д. Эти инструменты предоставляют полную среду сборки, а не только базовый компилятор.
На Mac
На Mac синтаксис похож, только компилятор C sharp просто называется csc :
Компилятор csc.exe
В действительности необходимость в создании крупных приложений с использованием одного лишь компилятора командной строки C# может никогда не возникнуть, тем не менее, важно понимать в общем, как вручную компилировать файлы кода. Существует несколько причин, по которым освоение этого процесса может оказаться полезным:
Самой очевидной причиной является отсутствие Visual Studio 2010 или какой-то другой графической IDE-среды.
Работа может выполняться в университете, где использование инструментов для генерации кода и IDE-сред обычно запрещено.
Планируется применение автоматизированных средств разработки, таких как msbuild.exe, которые требуют знать опции командной строки для используемых инструментов.
Возникло желание углубить свои познания в C#. В графических IDE-средах в конечном итоге все заканчивается предоставлением компилятору csc.ехе инструкций относительно того, что следует делать с входными файлами кода C#. В этом отношении изучение происходящего «за кулисами» позволяет получить необходимые знания.
Еще одно преимущество подхода с использованием одного лишь компилятора csc.ехе состоит в том, что он позволяет обрести навыки и чувствовать себя более уверенно при работе с другими инструментами командной строки, входящими в состав .NET Framework 4.0 SDK, так как целый ряд важных утилит работает исключительно в режиме командной строки.
Чтобы посмотреть, как создавать .NET-приложение без IDE-среды, давайте построим с помощью компилятора C# и текстового редактора Notepad простую исполняемую сборку по имени TestApplication.exe. Сначала необходимо подготовить исходный код. Откройте программу Notepad (Блокнот), выбрав в меню Start (Пуск) пункт All Programs — Accessories — Notepad (Все программы — Стандартные — Блокнот), и введите следующее типичное определение класса на C#:
После окончания ввода сохраните файл под именем TestApplication.cs. Теперь давайте ознакомимся с ключевыми опциями компилятора C#.
Указание целевых входных и выходных параметров
Первым делом важно разобраться с тем, как указывать имя и тип создаваемой сборки (т.е., например, консольное приложение по имени MyShell.exe, библиотека кода по имени MathLib.dll или приложение Windows Presentation Foundation по имени Halo8.ехе). Каждый из возможных вариантов имеет соответствующий флаг, который нужно передать компилятору csc.ехе в виде параметра командной строки.
Обратите внимание, что параметры, передаваемые компилятору командной строки (а также большинству других утилит командной строки), могут сопровождаться префиксом в виде символа дефиса (-) или слеша (/).
Выходные параметры, которые может принимать компилятор C# приведены в следующей таблице:
Чтобы скомпилировать TestApplication.cs в консольное приложение TestApplication.exe, перейдите в каталог, в котором был сохранен файл исходного кода (с помощью флага cd) и введите следующую команду:
Обратите внимание, что здесь C:\myProject — это путь к папке, в которой хранится файл TestApplication.cs. Так же обратите внимание, что здесь флаг /out не был указан явным образом, поэтому исполняемым файл получит имя TestApplication.ехе из-за того, что именем входного файла является TestApplication. Кроме того, для почти всех принимаемых компилятором C# флагов поддерживаются сокращенные версии написания, наподобие /t вместо /target (полный список которых можно увидеть, введя в командной строке команду csc -?).
Теперь можно попробовать запустить приложение TestApplication.ехе из командной строки, введя имя его исполняемого файла:
Добавление ссылок на внешние сборки
Давайте посмотрим, как скомпилировать приложение, в котором используются типы, определенные в отдельной сборке .NET. Если осталось неясным, каким образом компилятору C# удалось понять ссылку на тип System.Console, вспомните, что во время процесса компиляции происходит автоматическое добавление ссылки на mscorlib.dll (если по какой-то необычной причине нужно отключить эту функцию, следует передать компилятору csc.exe параметр /nostdlib).
Модифицируем приложение TestApplication так, чтобы в нем открывалось окно сообщения Windows Forms. Для этого откройте файл TestApplication.cs и измените его следующим образом:
Далее в командной строке нужно проинформировать компилятор csc.exe о том, в какой сборке содержатся используемые пространства имен. Поскольку применялся класс MessageBox из пространства имен System.Windows.Forms, значит, нужно указать компилятору на сборку System.Windows.Forms.dll, что делается с помощью флага /reference (или его сокращенной версии /r):
Если теперь снова попробовать запустить приложение, то помимо консольного вывода в нем должно появиться еще и окно с сообщением:
Кстати, как поступить, когда необходимо указать csc.exe несколько внешних сборок? Для этого нужно просто перечислить все сборки через точку с запятой. В рассматриваемом примере ссылаться на несколько сборок не требуется, но ниже приведена команда, которая иллюстрирует перечисление множества сборок:
csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs
Компиляция нескольких файлов исходного кода
В текущем примере приложение TestApp.exe создавалось с использованием единственного файла исходного кода * . cs. Хотя определять все типы .NET в одном файле *.cs вполне допустимо, в большинстве случаев проекты формируются из нескольких файлов *.cs для придания кодовой базе большей гибкости. Чтобы стало понятнее, давайте создадим новый класс и сохраним его в отдельном файле по имени HelloMessage.cs:
Изменим исходный класс TestApplication так, чтобы в нем использовался класс этого нового типа:
Чтобы скомпилировать файлы исходного кода на C# , необходимо их явно перечислить как входные файлы:
В качестве альтернативного варианта компилятор C# позволяет использовать групповой символ (*) для включения в текущую сборку всех файлов *.cs, которые содержатся в каталоге проекта:
Вывод, получаемый после запуска этой программы, идентичен предыдущей программе. Единственное отличие между этими двумя приложениями связано с разнесением логики по нескольким файлам.
Работа с ответными файлами в C#
Как не трудно догадаться, для создания сложного приложения C# из командной строки потребовалось бы вводить утомительное количество входных параметров для уведомления компилятора о том, как он должен обрабатывать исходный код. Для облегчения этой задачи в компиляторе C# поддерживается использование так называемых .
В ответных файлах C# размещаются все инструкции, которые должны использоваться в процессе компиляции текущей сборки. По соглашению эти файлы имеют расширение *.rsp (сокращение от response — ответ). Чтобы посмотреть на них в действии, давайте создадим ответный файл по имени TestApplication.rsp, содержащей следующие аргументы (комментарии в данном случае обозначаются символом #):
Теперь при условии сохранения данного файла в том же каталоге, где находятся подлежащие компиляции файлы исходного кода на C#, все приложение можно будет создать следующим образом (обратите внимание на применение символа @):
В случае необходимости допускается также указывать и несколько ответных *.rsp файлов в качестве входных параметров (например, csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp). При таком подходе, однако, следует иметь в виду, что компилятор обрабатывает параметры команд по мере их поступления. Следовательно, аргументы командной строки, содержащиеся в поступающем позже файле *.rsp, могут переопределять параметры из предыдущего ответного файла.
Последним моментом, связанным с ответными файлами, о котором необходимо упомянуть, является то, что с компилятором C# ассоциирован ответный файл csc.rsp, который используется по умолчанию и размещен в том же самом каталоге, что и файл csc.ехе (обычно это С:\Windows\Microsoft. NET\Framework\<Bepсия>, где на месте элемента <Bepсия> идет номер конкретной версии платформы). Открыв файл csc.rsp в программе Notepad (Блокнот), можно увидеть, что в нем с помощью флага /r: указано множество сборок .NET, в том числе различные библиотеки для разработки веб-приложений, программирования с использованием технологии LINQ и обеспечения доступа к данным и прочие ключевые библиотеки (помимо, конечно же, самой главной библиотеки mscorlib.dll):
При создании программ на C# с применением csc.ехе ссылка на этот ответный файл добавляется автоматически, даже когда указан специальный файл *.rsp. Из-за наличия такого ответного файла по умолчанию, рассматриваемое приложение TestApplication.ехе можно скомпилировать и c помощью следующей команды (поскольку в csc.rsp уже содержится ссылка на System.Windows.Forms.dll):
Стоит отметить, что в случае добавления с помощью опции /r ссылок на сборки, которые на самом деле не используются, компилятор их проигнорирует. Поэтому беспокоиться по поводу «разбухания кода» не нужно.
C# Language учебник
Начало работы с C # Language
C # — это мультипарадигма, язык программирования C-потомок от Microsoft. C # — управляемый язык, который компилируется в CIL , промежуточный байт-код, который может быть выполнен в Windows, Mac OS X и Linux.
Версии 1.0, 2.0 и 5.0 были стандартизованы ECMA (как ECMA-334 ), и в настоящее время предпринимаются усилия по стандартизации для современного C #.
Версии
Версия | Дата выхода |
---|---|
1,0 | 2002-01-01 |
1.2 | 2003-04-01 |
2,0 | 2005-09-01 |
3.0 | 2007-08-01 |
4,0 | 2010-04-01 |
5.0 | 2013-06-01 |
6,0 | 2015-07-01 |
7,0 | 2017-03-07 |
Создание нового консольного приложения (Visual Studio)
- Открыть Visual Studio
- На панели инструментов перейдите в Файл → Новый проект
- Выберите тип проекта консоли.
- Откройте файл Program.cs в обозревателе решений
- Добавьте следующий код в Main() :
- На панели инструментов нажмите « Отладка» -> « Начать отладки» или нажмите « F5» или « Ctrl + F5» (работает без отладчика), чтобы запустить программу.
объяснение
class Program — это объявление класса. Класс Program содержит определение данных и методов , которые используются в вашей программе. Классы обычно содержат несколько методов. Методы определяют поведение класса. Однако класс Program имеет только один метод: Main .
static void Main() определяет метод Main , который является точкой входа для всех программ на C #. Main метод определяет, что делает класс при выполнении. Для каждого класса допускается только один Main метод.
System.Console.WriteLine("Hello, world!"); метод выводит данные (в этом примере, Hello, world! ) в качестве вывода в окне консоли.
System.Console.ReadKey() , гарантирует, что программа не будет закрываться сразу после отображения сообщения. Он делает это, ожидая, что пользователь нажмет клавишу на клавиатуре. Любое нажатие клавиши от пользователя прекратит выполнение программы. Программа завершается, когда она закончила последнюю строку кода в методе main() .
Использование командной строки
Для компиляции с помощью командной строки используйте либо MSBuild либо csc.exe (компилятор C #) , как часть пакета средств Microsoft Build Tools .
Чтобы скомпилировать этот пример, запустите следующую команду в том же каталоге, где находится HelloWorld.cs :
Также возможно, что у вас есть два основных метода внутри одного приложения. В этом случае, вы должны сообщить компилятору, основной метод , чтобы выполнить, введя следующую команду в консоли. (Предположит , что класс ClassA также имеет основной метод в том же HelloWorld.cs файл HelloWorld имен)
где HelloWorld — пространство имен
Примечание . Это путь, в котором .NET framework v4.0 находится в целом. Измените путь в соответствии с вашей версией .NET. Кроме того, каталог может быть фреймворком вместо framework64, если вы используете 32-разрядную .NET Framework. В командной строке Windows вы можете перечислить все пути csc.exe Framework, выполнив следующие команды (первая для 32-разрядных фреймворков):
В этом же каталоге должен быть исполняемый файл HelloWorld.exe . Чтобы выполнить программу из командной строки, просто введите имя исполняемого файла и нажмите Enter следующим образом:
Вы также можете дважды щелкнуть исполняемый файл и запустить новое окно консоли с сообщением « Привет, мир! ».
Создание нового проекта в Visual Studio (консольное приложение) и запуск его в режиме отладки
Загрузите и установите Visual Studio . Visual Studio можно загрузить с сайта VisualStudio.com . Издание сообщества предлагается, во-первых, потому что оно бесплатное и второе, потому что оно включает в себя все общие функции и может быть расширено дальше.
Откройте Visual Studio.
Добро пожаловать. Откройте Файл → Новый → Проект .
Нажмите Шаблоны → Visual C # → Консольное приложение
Выбрав консольное приложение, введите имя для своего проекта и место для сохранения и нажмите OK . Не беспокойтесь о имени решения.
Создан проект . Созданный проект будет выглядеть примерно так:
(Всегда используйте описательные имена для проектов, чтобы их можно было легко отличить от других проектов. Рекомендуется не использовать пробелы в имени проекта или класса).
Напишите код. Теперь вы можете обновить программу Program.cs чтобы представить «Hello world!». для пользователя.
Добавьте следующие две строки в объект public static void Main(string[] args) в Program.cs : (убедитесь, что он находится внутри фигурных скобок)
Почему Console.Read() ? Первая строка выводит текст «Привет мир!». на консоль, а вторая строка ожидает ввода одного символа; по сути, это заставляет программу приостанавливать выполнение, чтобы вы могли видеть вывод во время отладки. Без Console.Read(); , когда вы начнете отлаживать приложение, оно просто напечатает «Hello world!». на консоль, а затем сразу же закрыть. Окно вашего кода теперь должно выглядеть следующим образом:
Отлаживайте свою программу. Нажмите кнопку «Пуск» на панели инструментов в верхней части окна. или нажмите F5 на клавиатуре, чтобы запустить приложение. Если кнопки нет, вы можете запустить программу из главного меню: Debug → Start Debugging . Программа скомпилирует и откроет окно консоли. Он должен выглядеть примерно так, как показано на следующем снимке экрана:
- Остановите программу. Чтобы закрыть программу, просто нажмите любую клавишу на клавиатуре. Добавленный нами Console.Read() был для этой же цели. Другой способ закрыть программу — это перейти в меню, где была кнопка « Пуск» , и нажать кнопку « Стоп» .
Создание новой программы с использованием Mono
Сначала установите Mono , выполнив инструкции по установке для выбранной вами платформы, как описано в разделе их установки .
Моно доступно для Mac OS X, Windows и Linux.
После завершения установки создайте текстовый файл, назовите его HelloWorld.cs и скопируйте в него следующий контент:
Если вы используете Windows, запустите Mono Command Prompt, которая включена в установку Mono, и убедитесь, что установлены необходимые переменные среды. Если на Mac или Linux откройте новый терминал.
Чтобы скомпилировать вновь созданный файл, запустите следующую команду в каталоге, содержащем HelloWorld.cs :
Получаемый HelloWorld.exe можно выполнить с помощью:
который будет производить выход:
Создание новой программы с использованием .NET Core
Сначала установите .NET Core SDK , выполнив инструкции по установке для выбранной вами платформы:
- Windows
- OSX
- Linux
- докер
По завершении установки откройте командную строку или окно терминала.
Создайте новый каталог с mkdir hello_world и перейдите во вновь созданный каталог cd hello_world .
Создайте новое консольное приложение с dotnet new console .
Это создаст два файла:
hello_world.csproj
Program.cs
Восстановите необходимые пакеты с dotnet restore .
Необязательно Создайте приложение с dotnet build для dotnet build Debug или dotnet build -c Release for Release. dotnet run также запускает компилятор и dotnet run ошибки сборки, если они есть.
Запустите приложение с dotnet run для dotnet run Debug или dotnet run .\bin\Release\netcoreapp1.1\hello_world.dll для выпуска.
Вывод командной строки
Создание нового запроса с использованием LinqPad
LinqPad — отличный инструмент, который позволяет вам изучать и тестировать функции .Net-языков (C #, F # и VB.Net.)
Создайте новый запрос ( Ctrl + N )
Под языком выберите «Операторы C #»,
Введите следующий код и нажмите пробег ( F5 )
- На экране результатов вы увидите «Hello World».
- Теперь, когда вы создали свою первую .Net-программу, пойдите и проверьте образцы, включенные в LinqPad, через браузер «Образцы». Есть много замечательных примеров, которые покажут вам много разных особенностей языков .Net.
Заметки:
- Если вы нажмете «IL», вы можете проверить код IL, который генерирует ваш .net-код. Это отличный инструмент обучения.
- При использовании LINQ to SQL или Linq to Entities вы можете проверить создаваемый SQL, что является еще одним отличным способом узнать о LINQ.
Compiling/Executing a C# Source File in Command Prompt
How do you compile and execute a .cs file from a command-prompt window?
17 Answers 17
CSC.exe is the CSharp compiler included in the .NET Framework and can be used to compile from the command prompt. The output can be an executable «.exe», if you use «/target:exe», or a DLL; If you use /target:library, CSC.exe is found in the .NET Framework directory,
e.g. for .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\ .
To run, first, open a command prompt, click «Start», then type cmd.exe .
You may then have to cd into the directory that holds your source files.
Run the C# compiler like this:
(all on one line)
If you have more than one source module to be compiled, you can put it on that same command line. If you have other assemblies to reference, use /r:AssemblyName.dll .
Ensure you have a static Main() method defined in one of your classes, to act as the «entry point».
To run the resulting EXE, type MyApplication , followed by <ENTER> using the command prompt.
This article on MSDN goes into more detail on the options for the command-line compiler. You can embed resources, set icons, sign assemblies — everything you could do within Visual Studio.
If you have Visual Studio installed, in the «Start menu»; under Visual Studio Tools, you can open a «Visual Studio command prompt», that will set up all required environment and path variables for command line compilation.
While it’s very handy to know of this, you should combine it with knowledge of some sort of build tool such as NAnt, MSBuild, FinalBuilder etc. These tools provide a complete build environment, not just the basic compiler.
Как запустить cs файл из командной строки
Для написания программ на С# годится любой текстовый редактор, например стандартный Блокнот. Откройте блокнот и напишите следующее
Файлы исходного кода С# имеют расширение .cs («с sharp»). Сохраните файл с написанным текстом как project01.cs. Вы написали код для самой простой консольной программы. Но это еще не сама программа. Для создания программы используется так называемый компилятор.
Компилятор
Компилятор С#, который служит для создания исполняемых файлов EXE, называется csc.exe. Чтобы получить исполняемый файл, скомпилируйте файл project01.cs такой командной строкой:
Компилятор создаст файл project01.exe, который можно запускать из командной строки.
Флаги компиляции компилятора командной строки C#
На самом деле компилятор имеет несколько флагов, позволяющих создавать различные типы файлов /doc Комментарии из исходника будут записаны в файл в формате XML /out Указывается имя создаваемого двоичного файла. Если параметр опущен, то имя будет таким же, как у файла с исходным кодом (с расширением .cs) /target:exe Тип создаваемого файла — консольное приложение. Принят по умолчанию, поэтому можно не указывать /target:library Создание файла в виде библиотеки DLL с содержанием манифеста /target:module Создание DLL без манифеста. /target:winexe Стандартное оконное приложение
При компиляции флаг /target ставится до указания имени файла
Параметр /target можно сократить до /t
Ссылки на внешние сборки
Бывает так, что создаваемое приложение использует типы, которые находятся во внешних, совершенно отдельных сборках С#. В нашем примере используемый класс System.Console былрасположен в библиотеке базовых типов mscorlib.dll, к которой компилятор обращается автоматически. Однако иногда нужные нам классы расположены в других сборках. Ситуацию, которая при этом возникает, лучше продемонстрироватьна примере. Предположим, что наше приложение TestApp не только выводит строки на системную консоль, но и генерирует графическое окно сообщения.
Листинг файла TestApp.cs
Обратите внимание, что теперь в коде приложения мы обращаемся к классу в пространстве имен System.Windows.Forms. Чтобы компилятор смог обнаружить класс MessageBox, нам потребуется явно указать внешнюю сборку System.Windows.Forms.dllв командной строке. Для указания внешних сборок используется параметр /reference:имя_внешней_сборки (/reference можно сократить до /r). В нашем случае командная строка компилятора должна выглядеть так:
Компиляция нескольких исходных файлов
При создании всех предыдущих вариантов нашего приложения использовался единственный исходный файл. Однако бывает ситуация, когда исходный код распределен по нескольким файлам. Давайте создадим такую ситуацию сами. Создадим дополнительный исходный файл HelloMsg.cs с классом HelloMessage
Пример файла HelloMsg.cs
И изменим предыдущий файл
При компиляции приложения мы можем явно указать все исходные файлы:
Однако есть и еще один способ компилировать приложение из нескольких исходников. Компилятор csc.exe поддерживает символ подстановки (*). При использовании этого символа мы сообщаем компилятору, что ему необходимо включить в приложение все файлы с указанным нами расширением, которые находятся в текущем каталоге:
Поскольку компилятор уже не сможет воспользоваться именем приложения по умолчанию, при использовании подстановочного символа (*) нам придется обязательно использовать параметр /out.
А что делать, если в нашем приложении используются классы сразу из несколькихвнешних сборок? Просто перечислить все эти сборки через точку с запятой, вот так:
В нашем приложении сборка System.Drawing.dll не нужна, мы добавили ее лишь для примера. Как вы, наверное, догадываетесь, в CSC предусмотрено множество других параметров командной строки. Для знакомства с ними мы рекомендуем использовать MSDN.
Полученный EXE-файл — 3 или 4 Кб в зависимости от того, помещает ли в него компилятор отладочную информацию.Исполняемый файл состоит из операторов MSIL (Microsoft Intermediate Language). При запуске программы среда CLR (Common Language Runtime) компилирует промежуточный язык в«родной» машинный код компьютера и подключает соответствующие DLL .NET. Например, если вы используете компьютер архитектуры Intel, то исполняющая среда будет генерировать 32-битный машинный код Intel x86. Посмотреть на MSIL можно, запустив дизассемблер Intermediate Language Disassembler (ildasm.exe):
C# чувствителен к регистру. Точка входа в программу на С# — функция Main (пишется с заглавной буквы). Пустые скобки показывают, что Main не имеет параметров, а ключевое слово void — что ОНЕ не возвращает значения. Ключевое слово public неявляется здесь строго необходимым; программа будет компилироваться и запускаться и без него.Main располагается внутри определения класса. Класс — основной структурный и организационный элемент объектно-ориентированных языков программирования, подобных С#. Проще всего сказать, что класс — совокупность связан-ных между собой кода и данных. У файла будет такое же имя, как и у класса, но с расширением .cs. Это соглашениеоб именах не является необходимым в С#; эта концепция появилась в Java и достаточно удобна.
System.ConsoleWriteLine напоминает вызов функции, и это, действительно, так.Данная функция принимает один параметр — текстовую строку — и показывает ее на консоли, в окне командной строки. Если вы скомпилируете и запустите программу, она покажет строку:и завершит работу.
Длинное имя функции System.Console.WriteLine состоит из таких частей:• System — пространство имен;• Console — класс, определенный в этом пространстве имен;• WriteLine — метод, определенный в этом классе; метод — то же самое, что ифункция, процедура или подпрограмма.
Использование пространств имен позволяет уменьшить объем ввода с клавиатуры. Для этого предназначено ключевое слово using. Пространство имен указывается один раз в операторе using, затем это пространство имен можно не вводить при обрашении к егоклассам. Вот альтернативный вариант программы:
Компилятор csc.exe
В действительности необходимость в создании крупных приложений с использованием одного лишь компилятора командной строки C# может никогда не возникнуть, тем не менее, важно понимать в общем, как вручную компилировать файлы кода. Существует несколько причин, по которым освоение этого процесса может оказаться полезным:
Самой очевидной причиной является отсутствие Visual Studio 2010 или какой-то другой графической IDE-среды.
Работа может выполняться в университете, где использование инструментов для генерации кода и IDE-сред обычно запрещено.
Планируется применение автоматизированных средств разработки, таких как msbuild.exe, которые требуют знать опции командной строки для используемых инструментов.
Возникло желание углубить свои познания в C#. В графических IDE-средах в конечном итоге все заканчивается предоставлением компилятору csc.ехе инструкций относительно того, что следует делать с входными файлами кода C#. В этом отношении изучение происходящего «за кулисами» позволяет получить необходимые знания.
Еще одно преимущество подхода с использованием одного лишь компилятора csc.ехе состоит в том, что он позволяет обрести навыки и чувствовать себя более уверенно при работе с другими инструментами командной строки, входящими в состав .NET Framework 4.0 SDK, так как целый ряд важных утилит работает исключительно в режиме командной строки.
Чтобы посмотреть, как создавать .NET-приложение без IDE-среды, давайте построим с помощью компилятора C# и текстового редактора Notepad простую исполняемую сборку по имени TestApplication.exe. Сначала необходимо подготовить исходный код. Откройте программу Notepad (Блокнот), выбрав в меню Start (Пуск) пункт All Programs — Accessories — Notepad (Все программы — Стандартные — Блокнот), и введите следующее типичное определение класса на C#:
После окончания ввода сохраните файл под именем TestApplication.cs. Теперь давайте ознакомимся с ключевыми опциями компилятора C#.
Указание целевых входных и выходных параметров
Первым делом важно разобраться с тем, как указывать имя и тип создаваемой сборки (т.е., например, консольное приложение по имени MyShell.exe, библиотека кода по имени MathLib.dll или приложение Windows Presentation Foundation по имени Halo8.ехе). Каждый из возможных вариантов имеет соответствующий флаг, который нужно передать компилятору csc.ехе в виде параметра командной строки.
Обратите внимание, что параметры, передаваемые компилятору командной строки (а также большинству других утилит командной строки), могут сопровождаться префиксом в виде символа дефиса (-) или слеша (/).
Выходные параметры, которые может принимать компилятор C# приведены в следующей таблице:
Параметр | Описание |
---|---|
/out | Этот параметр применяется для указания имени создаваемой сборки. По умолчанию сборке присваивается то же имя, что у входного файла *.сs |
/target:exe | Этот параметр позволяет создавать исполняемое консольное приложение. Сборка такого типа генерируется по умолчанию, потому при создании подобного приложения данный параметр можно опускать |
/target:library | Этот параметр позволяет создавать однофайловую сборку *.dll |
/target:module | Этот параметр позволяет создавать модуль. Модули являются элементами многофайловых сборок |
/target:winexe | Хотя приложения с графическим пользовательским интерфейсом можно создавать с применением параметра /target: ехе, параметр /target: winexe позволяет предотвратить открытие окна консоли под остальными окнами |
Чтобы скомпилировать TestApplication.cs в консольное приложение TestApplication.exe, перейдите в каталог, в котором был сохранен файл исходного кода (с помощью флага cd) и введите следующую команду:
Обратите внимание, что здесь C:\myProject — это путь к папке, в которой хранится файл TestApplication.cs. Так же обратите внимание, что здесь флаг /out не был указан явным образом, поэтому исполняемым файл получит имя TestApplication.ехе из-за того, что именем входного файла является TestApplication. Кроме того, для почти всех принимаемых компилятором C# флагов поддерживаются сокращенные версии написания, наподобие /t вместо /target (полный список которых можно увидеть, введя в командной строке команду csc -?).
Теперь можно попробовать запустить приложение TestApplication.ехе из командной строки, введя имя его исполняемого файла:
Добавление ссылок на внешние сборки
Давайте посмотрим, как скомпилировать приложение, в котором используются типы, определенные в отдельной сборке .NET. Если осталось неясным, каким образом компилятору C# удалось понять ссылку на тип System.Console, вспомните, что во время процесса компиляции происходит автоматическое добавление ссылки на mscorlib.dll (если по какой-то необычной причине нужно отключить эту функцию, следует передать компилятору csc.exe параметр /nostdlib).
Модифицируем приложение TestApplication так, чтобы в нем открывалось окно сообщения Windows Forms. Для этого откройте файл TestApplication.cs и измените его следующим образом:
Далее в командной строке нужно проинформировать компилятор csc.exe о том, в какой сборке содержатся используемые пространства имен. Поскольку применялся класс MessageBox из пространства имен System.Windows.Forms, значит, нужно указать компилятору на сборку System.Windows.Forms.dll, что делается с помощью флага /reference (или его сокращенной версии /r):
Если теперь снова попробовать запустить приложение, то помимо консольного вывода в нем должно появиться еще и окно с сообщением:
Кстати, как поступить, когда необходимо указать csc.exe несколько внешних сборок? Для этого нужно просто перечислить все сборки через точку с запятой. В рассматриваемом примере ссылаться на несколько сборок не требуется, но ниже приведена команда, которая иллюстрирует перечисление множества сборок:
csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs
Компиляция нескольких файлов исходного кода
В текущем примере приложение TestApp.exe создавалось с использованием единственного файла исходного кода * . cs. Хотя определять все типы .NET в одном файле *.cs вполне допустимо, в большинстве случаев проекты формируются из нескольких файлов *.cs для придания кодовой базе большей гибкости. Чтобы стало понятнее, давайте создадим новый класс и сохраним его в отдельном файле по имени HelloMessage.cs:
Изменим исходный класс TestApplication так, чтобы в нем использовался класс этого нового типа:
Чтобы скомпилировать файлы исходного кода на C# , необходимо их явно перечислить как входные файлы:
В качестве альтернативного варианта компилятор C# позволяет использовать групповой символ (*) для включения в текущую сборку всех файлов *.cs, которые содержатся в каталоге проекта:
Вывод, получаемый после запуска этой программы, идентичен предыдущей программе. Единственное отличие между этими двумя приложениями связано с разнесением логики по нескольким файлам.
Работа с ответными файлами в C#
Как не трудно догадаться, для создания сложного приложения C# из командной строки потребовалось бы вводить утомительное количество входных параметров для уведомления компилятора о том, как он должен обрабатывать исходный код. Для облегчения этой задачи в компиляторе C# поддерживается использование так называемых .
В ответных файлах C# размещаются все инструкции, которые должны использоваться в процессе компиляции текущей сборки. По соглашению эти файлы имеют расширение *.rsp (сокращение от response — ответ). Чтобы посмотреть на них в действии, давайте создадим ответный файл по имени TestApplication.rsp, содержащей следующие аргументы (комментарии в данном случае обозначаются символом #):
Теперь при условии сохранения данного файла в том же каталоге, где находятся подлежащие компиляции файлы исходного кода на C#, все приложение можно будет создать следующим образом (обратите внимание на применение символа @):
В случае необходимости допускается также указывать и несколько ответных *.rsp файлов в качестве входных параметров (например, csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp). При таком подходе, однако, следует иметь в виду, что компилятор обрабатывает параметры команд по мере их поступления. Следовательно, аргументы командной строки, содержащиеся в поступающем позже файле *.rsp, могут переопределять параметры из предыдущего ответного файла.
Последним моментом, связанным с ответными файлами, о котором необходимо упомянуть, является то, что с компилятором C# ассоциирован ответный файл csc.rsp, который используется по умолчанию и размещен в том же самом каталоге, что и файл csc.ехе (обычно это С:\Windows\Microsoft. NET\Framework\<Bepсия>, где на месте элемента <Bepсия> идет номер конкретной версии платформы). Открыв файл csc.rsp в программе Notepad (Блокнот), можно увидеть, что в нем с помощью флага /r: указано множество сборок .NET, в том числе различные библиотеки для разработки веб-приложений, программирования с использованием технологии LINQ и обеспечения доступа к данным и прочие ключевые библиотеки (помимо, конечно же, самой главной библиотеки mscorlib.dll):
При создании программ на C# с применением csc.ехе ссылка на этот ответный файл добавляется автоматически, даже когда указан специальный файл *.rsp. Из-за наличия такого ответного файла по умолчанию, рассматриваемое приложение TestApplication.ехе можно скомпилировать и c помощью следующей команды (поскольку в csc.rsp уже содержится ссылка на System.Windows.Forms.dll):
Стоит отметить, что в случае добавления с помощью опции /r ссылок на сборки, которые на самом деле не используются, компилятор их проигнорирует. Поэтому беспокоиться по поводу «разбухания кода» не нужно.
Как запустить cs файл из командной строки
Что делать, если не установлена Visual Studio, но так хочется что-нибуль скомпилировать.
Если установлена платформа NET и установлен .NET SDK, то это не проблема. Приложения можно скомпилировать из командной строки, воспользовавшись утилитой csc.exe . Найти эту утилиту можно в каталоге C:\Windows\Microsoft.NET\Framework\[Требуемая версия].
Для начала напишем в любом текстовом редакторе простое приложение и сохраним его в файл HelloWorld.cs:
Теперь скомпилируем и запустим его. Допустим, путь в командной строке установлен на текущий каталог нашего файла HelloWorld.cs. Тогда введем в командную строку следующую команду (в данном случае у меня установлен 4-й фреймворк в папке v4.0.30319):
Если ошибок при компиляции не возникло, то в одном каталоге с HelloWorld.cs мы увидим скомпилированный файл HelloWorld.exe.
Параметры компиляции
Компилятор может принимать следующие выходные параметры:
Присваивает имя выходной сборки. По умолчанию присваивается то же имя, что и у файла кода cs
Компиляция / выполнение исходного файла C # в командной строке
Как скомпилировать и выполнить файл .cs из окна командной строки?
10 ответов
CSC.exe — это компилятор CSharp, включенный в .NET Framework, и его можно использовать для компиляции из командной строки. Выводом может быть исполняемый файл (.exe), если вы используете /target: exe, или DLL, если вы используете /target: library. Файл CSC.exe находится в каталоге .NET Framework, например, для .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\ .
Чтобы запустить его, сначала откройте командную строку (нажмите Пуск. затем введите cmd.exe ). Затем вам может понадобиться перейти в каталог, содержащий ваши исходные файлы.
Запустите компилятор С# следующим образом:
(все в одной строке)
Если у вас есть более одного исходного модуля для компиляции, вы можете поместить его в эту же командную строку. Если у вас есть другие сборки для справки, используйте /r:AssemblyName.dll .
Убедитесь, что у вас есть статический метод Main(), определенный в одном из ваших классов для работы в качестве «точки входа».
Чтобы запустить полученный EXE- MyApplication , просто введите MyApplication а затем <ENTER> в командной строке.
В этой статье о MSDN более подробно рассматриваются параметры компилятора командной строки. Вы можете встраивать ресурсы, устанавливать значки, подписывать сборки — все, что вы можете делать в Visual Studio.
Если у вас установлена Visual Studio, в меню «Пуск» (в разделе «Инструменты Visual Studio») вы можете открыть «Командную строку Visual Studio», которая установит все необходимые переменные среды и пути для компиляции из командной строки.
Хотя это очень удобно знать, вы должны сочетать его со знанием какого-либо инструмента сборки, такого как NAnt, MSBuild, FinalBuilder и т.д. Эти инструменты предоставляют полную среду сборки, а не только базовый компилятор.
На Mac
На Mac синтаксис похож, только компилятор C sharp просто называется csc :
Компилятор csc.exe
В действительности необходимость в создании крупных приложений с использованием одного лишь компилятора командной строки C# может никогда не возникнуть, тем не менее, важно понимать в общем, как вручную компилировать файлы кода. Существует несколько причин, по которым освоение этого процесса может оказаться полезным:
Самой очевидной причиной является отсутствие Visual Studio 2010 или какой-то другой графической IDE-среды.
Работа может выполняться в университете, где использование инструментов для генерации кода и IDE-сред обычно запрещено.
Планируется применение автоматизированных средств разработки, таких как msbuild.exe, которые требуют знать опции командной строки для используемых инструментов.
Возникло желание углубить свои познания в C#. В графических IDE-средах в конечном итоге все заканчивается предоставлением компилятору csc.ехе инструкций относительно того, что следует делать с входными файлами кода C#. В этом отношении изучение происходящего «за кулисами» позволяет получить необходимые знания.
Еще одно преимущество подхода с использованием одного лишь компилятора csc.ехе состоит в том, что он позволяет обрести навыки и чувствовать себя более уверенно при работе с другими инструментами командной строки, входящими в состав .NET Framework 4.0 SDK, так как целый ряд важных утилит работает исключительно в режиме командной строки.
Чтобы посмотреть, как создавать .NET-приложение без IDE-среды, давайте построим с помощью компилятора C# и текстового редактора Notepad простую исполняемую сборку по имени TestApplication.exe. Сначала необходимо подготовить исходный код. Откройте программу Notepad (Блокнот), выбрав в меню Start (Пуск) пункт All Programs — Accessories — Notepad (Все программы — Стандартные — Блокнот), и введите следующее типичное определение класса на C#:
После окончания ввода сохраните файл под именем TestApplication.cs. Теперь давайте ознакомимся с ключевыми опциями компилятора C#.
Указание целевых входных и выходных параметров
Первым делом важно разобраться с тем, как указывать имя и тип создаваемой сборки (т.е., например, консольное приложение по имени MyShell.exe, библиотека кода по имени MathLib.dll или приложение Windows Presentation Foundation по имени Halo8.ехе). Каждый из возможных вариантов имеет соответствующий флаг, который нужно передать компилятору csc.ехе в виде параметра командной строки.
Обратите внимание, что параметры, передаваемые компилятору командной строки (а также большинству других утилит командной строки), могут сопровождаться префиксом в виде символа дефиса (-) или слеша (/).
Выходные параметры, которые может принимать компилятор C# приведены в следующей таблице:
Чтобы скомпилировать TestApplication.cs в консольное приложение TestApplication.exe, перейдите в каталог, в котором был сохранен файл исходного кода (с помощью флага cd) и введите следующую команду:
Обратите внимание, что здесь C:\myProject — это путь к папке, в которой хранится файл TestApplication.cs. Так же обратите внимание, что здесь флаг /out не был указан явным образом, поэтому исполняемым файл получит имя TestApplication.ехе из-за того, что именем входного файла является TestApplication. Кроме того, для почти всех принимаемых компилятором C# флагов поддерживаются сокращенные версии написания, наподобие /t вместо /target (полный список которых можно увидеть, введя в командной строке команду csc -?).
Теперь можно попробовать запустить приложение TestApplication.ехе из командной строки, введя имя его исполняемого файла:
Добавление ссылок на внешние сборки
Давайте посмотрим, как скомпилировать приложение, в котором используются типы, определенные в отдельной сборке .NET. Если осталось неясным, каким образом компилятору C# удалось понять ссылку на тип System.Console, вспомните, что во время процесса компиляции происходит автоматическое добавление ссылки на mscorlib.dll (если по какой-то необычной причине нужно отключить эту функцию, следует передать компилятору csc.exe параметр /nostdlib).
Модифицируем приложение TestApplication так, чтобы в нем открывалось окно сообщения Windows Forms. Для этого откройте файл TestApplication.cs и измените его следующим образом:
Далее в командной строке нужно проинформировать компилятор csc.exe о том, в какой сборке содержатся используемые пространства имен. Поскольку применялся класс MessageBox из пространства имен System.Windows.Forms, значит, нужно указать компилятору на сборку System.Windows.Forms.dll, что делается с помощью флага /reference (или его сокращенной версии /r):
Если теперь снова попробовать запустить приложение, то помимо консольного вывода в нем должно появиться еще и окно с сообщением:
Кстати, как поступить, когда необходимо указать csc.exe несколько внешних сборок? Для этого нужно просто перечислить все сборки через точку с запятой. В рассматриваемом примере ссылаться на несколько сборок не требуется, но ниже приведена команда, которая иллюстрирует перечисление множества сборок:
csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs
Компиляция нескольких файлов исходного кода
В текущем примере приложение TestApp.exe создавалось с использованием единственного файла исходного кода * . cs. Хотя определять все типы .NET в одном файле *.cs вполне допустимо, в большинстве случаев проекты формируются из нескольких файлов *.cs для придания кодовой базе большей гибкости. Чтобы стало понятнее, давайте создадим новый класс и сохраним его в отдельном файле по имени HelloMessage.cs:
Изменим исходный класс TestApplication так, чтобы в нем использовался класс этого нового типа:
Чтобы скомпилировать файлы исходного кода на C# , необходимо их явно перечислить как входные файлы:
В качестве альтернативного варианта компилятор C# позволяет использовать групповой символ (*) для включения в текущую сборку всех файлов *.cs, которые содержатся в каталоге проекта:
Вывод, получаемый после запуска этой программы, идентичен предыдущей программе. Единственное отличие между этими двумя приложениями связано с разнесением логики по нескольким файлам.
Работа с ответными файлами в C#
Как не трудно догадаться, для создания сложного приложения C# из командной строки потребовалось бы вводить утомительное количество входных параметров для уведомления компилятора о том, как он должен обрабатывать исходный код. Для облегчения этой задачи в компиляторе C# поддерживается использование так называемых .
В ответных файлах C# размещаются все инструкции, которые должны использоваться в процессе компиляции текущей сборки. По соглашению эти файлы имеют расширение *.rsp (сокращение от response — ответ). Чтобы посмотреть на них в действии, давайте создадим ответный файл по имени TestApplication.rsp, содержащей следующие аргументы (комментарии в данном случае обозначаются символом #):
Теперь при условии сохранения данного файла в том же каталоге, где находятся подлежащие компиляции файлы исходного кода на C#, все приложение можно будет создать следующим образом (обратите внимание на применение символа @):
В случае необходимости допускается также указывать и несколько ответных *.rsp файлов в качестве входных параметров (например, csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp). При таком подходе, однако, следует иметь в виду, что компилятор обрабатывает параметры команд по мере их поступления. Следовательно, аргументы командной строки, содержащиеся в поступающем позже файле *.rsp, могут переопределять параметры из предыдущего ответного файла.
Последним моментом, связанным с ответными файлами, о котором необходимо упомянуть, является то, что с компилятором C# ассоциирован ответный файл csc.rsp, который используется по умолчанию и размещен в том же самом каталоге, что и файл csc.ехе (обычно это С:\Windows\Microsoft. NET\Framework\<Bepсия>, где на месте элемента <Bepсия> идет номер конкретной версии платформы). Открыв файл csc.rsp в программе Notepad (Блокнот), можно увидеть, что в нем с помощью флага /r: указано множество сборок .NET, в том числе различные библиотеки для разработки веб-приложений, программирования с использованием технологии LINQ и обеспечения доступа к данным и прочие ключевые библиотеки (помимо, конечно же, самой главной библиотеки mscorlib.dll):
При создании программ на C# с применением csc.ехе ссылка на этот ответный файл добавляется автоматически, даже когда указан специальный файл *.rsp. Из-за наличия такого ответного файла по умолчанию, рассматриваемое приложение TestApplication.ехе можно скомпилировать и c помощью следующей команды (поскольку в csc.rsp уже содержится ссылка на System.Windows.Forms.dll):
Стоит отметить, что в случае добавления с помощью опции /r ссылок на сборки, которые на самом деле не используются, компилятор их проигнорирует. Поэтому беспокоиться по поводу «разбухания кода» не нужно.
C# Language учебник
Начало работы с C # Language
C # — это мультипарадигма, язык программирования C-потомок от Microsoft. C # — управляемый язык, который компилируется в CIL , промежуточный байт-код, который может быть выполнен в Windows, Mac OS X и Linux.
Версии 1.0, 2.0 и 5.0 были стандартизованы ECMA (как ECMA-334 ), и в настоящее время предпринимаются усилия по стандартизации для современного C #.
Версии
Версия | Дата выхода |
---|---|
1,0 | 2002-01-01 |
1.2 | 2003-04-01 |
2,0 | 2005-09-01 |
3.0 | 2007-08-01 |
4,0 | 2010-04-01 |
5.0 | 2013-06-01 |
6,0 | 2015-07-01 |
7,0 | 2017-03-07 |
Создание нового консольного приложения (Visual Studio)
- Открыть Visual Studio
- На панели инструментов перейдите в Файл → Новый проект
- Выберите тип проекта консоли.
- Откройте файл Program.cs в обозревателе решений
- Добавьте следующий код в Main() :
- На панели инструментов нажмите « Отладка» -> « Начать отладки» или нажмите « F5» или « Ctrl + F5» (работает без отладчика), чтобы запустить программу.
объяснение
class Program — это объявление класса. Класс Program содержит определение данных и методов , которые используются в вашей программе. Классы обычно содержат несколько методов. Методы определяют поведение класса. Однако класс Program имеет только один метод: Main .
static void Main() определяет метод Main , который является точкой входа для всех программ на C #. Main метод определяет, что делает класс при выполнении. Для каждого класса допускается только один Main метод.
System.Console.WriteLine("Hello, world!"); метод выводит данные (в этом примере, Hello, world! ) в качестве вывода в окне консоли.
System.Console.ReadKey() , гарантирует, что программа не будет закрываться сразу после отображения сообщения. Он делает это, ожидая, что пользователь нажмет клавишу на клавиатуре. Любое нажатие клавиши от пользователя прекратит выполнение программы. Программа завершается, когда она закончила последнюю строку кода в методе main() .
Использование командной строки
Для компиляции с помощью командной строки используйте либо MSBuild либо csc.exe (компилятор C #) , как часть пакета средств Microsoft Build Tools .
Чтобы скомпилировать этот пример, запустите следующую команду в том же каталоге, где находится HelloWorld.cs :
Также возможно, что у вас есть два основных метода внутри одного приложения. В этом случае, вы должны сообщить компилятору, основной метод , чтобы выполнить, введя следующую команду в консоли. (Предположит , что класс ClassA также имеет основной метод в том же HelloWorld.cs файл HelloWorld имен)
где HelloWorld — пространство имен
Примечание . Это путь, в котором .NET framework v4.0 находится в целом. Измените путь в соответствии с вашей версией .NET. Кроме того, каталог может быть фреймворком вместо framework64, если вы используете 32-разрядную .NET Framework. В командной строке Windows вы можете перечислить все пути csc.exe Framework, выполнив следующие команды (первая для 32-разрядных фреймворков):
В этом же каталоге должен быть исполняемый файл HelloWorld.exe . Чтобы выполнить программу из командной строки, просто введите имя исполняемого файла и нажмите Enter следующим образом:
Вы также можете дважды щелкнуть исполняемый файл и запустить новое окно консоли с сообщением « Привет, мир! ».
Создание нового проекта в Visual Studio (консольное приложение) и запуск его в режиме отладки
Загрузите и установите Visual Studio . Visual Studio можно загрузить с сайта VisualStudio.com . Издание сообщества предлагается, во-первых, потому что оно бесплатное и второе, потому что оно включает в себя все общие функции и может быть расширено дальше.
Откройте Visual Studio.
Добро пожаловать. Откройте Файл → Новый → Проект .
Нажмите Шаблоны → Visual C # → Консольное приложение
Выбрав консольное приложение, введите имя для своего проекта и место для сохранения и нажмите OK . Не беспокойтесь о имени решения.
Создан проект . Созданный проект будет выглядеть примерно так:
(Всегда используйте описательные имена для проектов, чтобы их можно было легко отличить от других проектов. Рекомендуется не использовать пробелы в имени проекта или класса).
Напишите код. Теперь вы можете обновить программу Program.cs чтобы представить «Hello world!». для пользователя.
Добавьте следующие две строки в объект public static void Main(string[] args) в Program.cs : (убедитесь, что он находится внутри фигурных скобок)
Почему Console.Read() ? Первая строка выводит текст «Привет мир!». на консоль, а вторая строка ожидает ввода одного символа; по сути, это заставляет программу приостанавливать выполнение, чтобы вы могли видеть вывод во время отладки. Без Console.Read(); , когда вы начнете отлаживать приложение, оно просто напечатает «Hello world!». на консоль, а затем сразу же закрыть. Окно вашего кода теперь должно выглядеть следующим образом:
Отлаживайте свою программу. Нажмите кнопку «Пуск» на панели инструментов в верхней части окна. или нажмите F5 на клавиатуре, чтобы запустить приложение. Если кнопки нет, вы можете запустить программу из главного меню: Debug → Start Debugging . Программа скомпилирует и откроет окно консоли. Он должен выглядеть примерно так, как показано на следующем снимке экрана:
- Остановите программу. Чтобы закрыть программу, просто нажмите любую клавишу на клавиатуре. Добавленный нами Console.Read() был для этой же цели. Другой способ закрыть программу — это перейти в меню, где была кнопка « Пуск» , и нажать кнопку « Стоп» .
Создание новой программы с использованием Mono
Сначала установите Mono , выполнив инструкции по установке для выбранной вами платформы, как описано в разделе их установки .
Моно доступно для Mac OS X, Windows и Linux.
После завершения установки создайте текстовый файл, назовите его HelloWorld.cs и скопируйте в него следующий контент:
Если вы используете Windows, запустите Mono Command Prompt, которая включена в установку Mono, и убедитесь, что установлены необходимые переменные среды. Если на Mac или Linux откройте новый терминал.
Чтобы скомпилировать вновь созданный файл, запустите следующую команду в каталоге, содержащем HelloWorld.cs :
Получаемый HelloWorld.exe можно выполнить с помощью:
который будет производить выход:
Создание новой программы с использованием .NET Core
Сначала установите .NET Core SDK , выполнив инструкции по установке для выбранной вами платформы:
- Windows
- OSX
- Linux
- докер
По завершении установки откройте командную строку или окно терминала.
Создайте новый каталог с mkdir hello_world и перейдите во вновь созданный каталог cd hello_world .
Создайте новое консольное приложение с dotnet new console .
Это создаст два файла:
hello_world.csproj
Program.cs
Восстановите необходимые пакеты с dotnet restore .
Необязательно Создайте приложение с dotnet build для dotnet build Debug или dotnet build -c Release for Release. dotnet run также запускает компилятор и dotnet run ошибки сборки, если они есть.
Запустите приложение с dotnet run для dotnet run Debug или dotnet run .\bin\Release\netcoreapp1.1\hello_world.dll для выпуска.
Вывод командной строки
Создание нового запроса с использованием LinqPad
LinqPad — отличный инструмент, который позволяет вам изучать и тестировать функции .Net-языков (C #, F # и VB.Net.)
Создайте новый запрос ( Ctrl + N )
Под языком выберите «Операторы C #»,
Введите следующий код и нажмите пробег ( F5 )
- На экране результатов вы увидите «Hello World».
- Теперь, когда вы создали свою первую .Net-программу, пойдите и проверьте образцы, включенные в LinqPad, через браузер «Образцы». Есть много замечательных примеров, которые покажут вам много разных особенностей языков .Net.
Заметки:
- Если вы нажмете «IL», вы можете проверить код IL, который генерирует ваш .net-код. Это отличный инструмент обучения.
- При использовании LINQ to SQL или Linq to Entities вы можете проверить создаваемый SQL, что является еще одним отличным способом узнать о LINQ.
Компиляция / выполнение исходного файла C # в командной строке
Как скомпилировать и выполнить файл .cs из окна командной строки?
10 ответов
CSC.exe — это компилятор CSharp, включенный в .NET Framework, и его можно использовать для компиляции из командной строки. Выводом может быть исполняемый файл (.exe), если вы используете /target: exe, или DLL, если вы используете /target: library. Файл CSC.exe находится в каталоге .NET Framework, например, для .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\ .
Чтобы запустить его, сначала откройте командную строку (нажмите Пуск. затем введите cmd.exe ). Затем вам может понадобиться перейти в каталог, содержащий ваши исходные файлы.
Запустите компилятор С# следующим образом:
(все в одной строке)
Если у вас есть более одного исходного модуля для компиляции, вы можете поместить его в эту же командную строку. Если у вас есть другие сборки для справки, используйте /r:AssemblyName.dll .
Убедитесь, что у вас есть статический метод Main(), определенный в одном из ваших классов для работы в качестве «точки входа».
Чтобы запустить полученный EXE- MyApplication , просто введите MyApplication а затем <ENTER> в командной строке.
В этой статье о MSDN более подробно рассматриваются параметры компилятора командной строки. Вы можете встраивать ресурсы, устанавливать значки, подписывать сборки — все, что вы можете делать в Visual Studio.
Если у вас установлена Visual Studio, в меню «Пуск» (в разделе «Инструменты Visual Studio») вы можете открыть «Командную строку Visual Studio», которая установит все необходимые переменные среды и пути для компиляции из командной строки.
Хотя это очень удобно знать, вы должны сочетать его со знанием какого-либо инструмента сборки, такого как NAnt, MSBuild, FinalBuilder и т.д. Эти инструменты предоставляют полную среду сборки, а не только базовый компилятор.
На Mac
На Mac синтаксис похож, только компилятор C sharp просто называется csc :
Как пользоваться компилятором командной строки csc.exe?
Сегодня только начала учить С# по книге Г.Шилдта . И столкнулась с проблемой запуска элементарной программы(вывода текстовой строки ) . В книге описано , как это сделать через командную строку :нужно создать простой текстовый файл , например в блокноте , с разр. cs, а потом в командной строке вписать : сsc Example.cs
Мне пишет , что "csc" не является внутренней или внешней командой , исполняемой программой или пакетным файлом .
Подскажите пожалуйста , что делать ? Как можно запустить программу?
Компиляция из командной строки: csc не является внутренней или внешей командой
создал С# программу и сохранил ее на компьютере в файле с именем myprogram.cs открыв командное.
Как откомпилировать с помощью csc.exe?
Как с помощю csc.exe из program.cs получить program.exe?
Куда компилятор csc.exe кладёт скомпилированные .exe/.dll?
Куда компилятор csc.exe кладёт скомпилированные .exe/.dll? Есть батник, компиляция проекта в Visual.
Как пользоваться аргументами командной строки?
Как пользоваться аргументами Командной строки. Для лучшего понимания, как пользоваться.