Скомпилировать форму 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# по отдельности (будь то в корневом каталоге или поддиректориях). Только одно имя файла проекта, и все готово.