Скомпилировать форму Windows с помощью csc.exe

В своей книге Эрик Браун

пишет следующий код и компилирует его

csc MyForm.cs

      [assembly: System.Reflection.AssemblyVersion("1.1")]
namespace MyNamespace
{
 public class MyForm : System.Windows.Forms.Form
 {
 public MyForm()
 {
 this.Text = "Hello Form";
 }
 public static void Main()
 {
 System.Windows.Forms.Application.Run(new MyForm());
 }
 }
}

Я хочу добавить еще одну форму и назвать ее с первого раза.

мне нужен файл проекта? сборочный файл? Я не понимаю процесс сборки. Можете ли вы объяснить мне самые основы: как сказать компилятору создать приложение для двух форм?

Спасибо

2 ответа

Решение

Первая форма (form1.cs):-

public class MyForm : System.Windows.Forms.Form
 {       
 public MyForm()
 {
 this.Text = "Hello Form";
 this.Click+=Form_Click;
 }
 public static void Main()
 {
    System.Windows.Forms.Application.Run(new MyForm());

 }

 private void Form_Click(object sender, System.EventArgs e){
    MyForm2 form2=new MyForm2();
    form2.ShowDialog();
 }
 }

Вторая форма (form2.cs):-

 public class MyForm2 : System.Windows.Forms.Form
 {
 public MyForm2()
 {
 this.Text = "Hello Form 2";
 }
 }

Теперь из командной строки, найдите место, где вы сохранили эти CS-файлы, а затем запустите: -

csc form1.cs form2.cs

Это создаст исполняемый файл. Запустите его и нажмите на форму, чтобы открыть форму2.

Вам нужно использовать командную строку Visual Studio (VS) и указать имена файлов кода C# (*.cs) всех форм Windows в вашем проекте. Сюда должны входить файлы кода формы, а также файлы кода разработчика, иначе компиляция не удастся:

csc /target:winexe Program.cs Form1.cs Form1.Designer.cs Form2.cs Form2.Designer.cs

Примечание: важно включить Program.cs иначе компилятор не может получить Main точка входа. /target Переключатель помогает создать выходной файл в виде приложения Windows Forms.

В качестве альтернативы вы можете использовать подстановочный знак, чтобы упомянуть все имена файлов за один раз:

csc /target:winexe *.cs

Другой альтернативный вариант - попробовать msbuild команда вместо csc команда в командной строке Visual Studio:

msbuild WindowsFormsApplication1.csproj

Это освобождает вас от упоминания всех имен файлов кода C# по отдельности (будь то в корневом каталоге или поддиректориях). Только одно имя файла проекта, и все готово.

Другие вопросы по тегам