2017-02-04 8 views
1

в своей книге Эрик Браункомпилировать окна формы с помощью csc.exe

записывает код folloing и компилирует его

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()); 
} 
} 
} 

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

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

благодаря

+0

Не так очевидно, что эта книга пытается вас научить. Но этот код просто преступно ошибочен. Используйте шаблон проекта Visual Studio, чтобы все было правильно. И получить другую книгу. –

+0

@hans: пожалуйста, не судите о книге, на 99% сосредоточенной на визуальной студии и дайте один пример ..., который отвечает моим уникальным потребностям. – Asaf

+0

Хмм, я имею право судить. Книга, которая учит очень плохие привычки программирования, не является хорошей книгой. То, что ваш пользовательский интерфейс выглядит так, будто он появился в прошлом веке, довольно легко увидеть. Но то, что вы не можете видеть, - это очень неприятная неуничтожаемая неудача, которую вы получите, когда будете продолжать. Никто здесь не сможет вам помочь, они не будут знать, что книга сказала вам сделать это неправильно. Не делай этого. –

ответ

1

Первая форма (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 

Будет создан exe-файл. Запустите его и щелкните по форме, чтобы открыть форму2.

+0

спасибо. не могу поверить, что это просто .. Я скоро проверю это.Так что если csc «знает», как объединить все файлы .. что такое сборка и файл проекта, хорошо? (просто любопытно ... вы уже ответили на мой вопрос) .. спасибо – Asaf

+0

Рад, что это помогло. Пожалуйста, поддержите его. :) Файл проекта в основном автоматически создается, если вы используете визуальную студию. Файл проекта не является обязательным компонентом для написания и компиляции программ C#. –

0

Вам необходимо использовать командную строку 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 помогает создать выходной EXE как приложение для форм Windows.

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

csc /target:winexe *.cs 

Другой альтернативный вариант заключается в попытке msbuild команду вместо csc команды на командной студии строке СЦЕНА:

msbuild WindowsFormsApplication1.csproj 

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

+0

это можно сделать без vs с командной строкой Windows, и это была точка. Благодарим за предоставление дополнительной информации о * .cs. ms build похоже на более структурированное решение, но мне удалось создать тонкий шаблон, чтобы держать меня в движении ... Я никогда не нашел глупое руководство по проверке, чтобы показать мне расширенные опции: exaples, pictures;) ... в любом случае спасибо ... – Asaf

+0

ОК. Великий. Я также хотел выделить переключатель '/ target', который поможет вам запустить вывод exe в качестве приложения для форм Windows. Он не упоминает этот переключатель, после чего он запускается как консольное приложение, которое, в свою очередь, обещает приложение Windows. – RBT

 Смежные вопросы

  • Нет связанных вопросов^_^