объединение нескольких проектов на C #

#c# #user-interface

#c# #пользовательский интерфейс

Вопрос:

Краткое описание: Создайте основное приложение для запуска других приложений, объединив код в Visual Studio.

Подробности: У меня есть 3 проекта (все на c #), которые я могу открыть в Visual Studio. Все они работают. Все они основаны на графическом интерфейсе. Я хочу создать основное приложение всего с несколькими кнопками на нем, которые будут открывать каждое приложение при нажатии соответствующей кнопки.

Я знаю, что могу выполнить это с помощью «System.Диагностика.Процесс.Начать (@»program1.exe «); » но я не хочу упаковывать все это вместе и должен давать своим коллегам несколько исполняемых файлов и надеяться, что они прочитают инструкции и выполнят правильный файл. Я хотел бы вместо этого взять все файлы .cs из приложений и импортировать их в мое основное приложение. Я хочу, чтобы файлы program1 запускались при нажатии program1button и запускались как обычно. Возможно ли это?

пример: Это основное приложение будет выглядеть так, как описано ниже. При нажатии program1button я хочу запустить program1.

 _____________________
| master application|
|                   |
|  |program1Button| |
|                   |
|  |program2Button| |
|                   |
|  |program3Button| |
|                   |
|___________________|
  

Комментарии:

1. обязательно ли они должны быть исполняемыми файлами? как насчет MEF и создания приложений в качестве плагинов для «лаунчера»?

2. Что такое MEF? я довольно новичок в Visual Studio.

3. К вашему сведению, язык называется «C #», а не «C Sharp» или «csharp»

4. Очень признателен, вы всегда готовы помочь, мистер Сондерс. ОТРЕДАКТИРОВАНО: перечитайте это, и это прозвучало так, как будто я был саркастичным. Приношу свои извинения за любые неправильные представления.

5. MEF является «Microsoft Extension Framework», частью .net 4, и также доступна на codeplex. по сути, это фреймворк плагинов для C#

Ответ №1:

Итак, если вы хотите, чтобы весь код был в одном проекте и в одном exe-файле, вам нужно объединить всю логику в одно решение и файл проекта.

Комментарии:

1. точно. Но должен ли я копировать и вставлять все это в один .cs? Каждое приложение имеет свой собственный графический интерфейс. Я действительно хочу открыть пользовательский графический интерфейс для каждого из них.

2. Это приложение winforms? Вы бы просто создали другие формы и отображали / скрывали формы в зависимости от функциональности, которую вы хотите вызвать. Вы должны быть в состоянии перемещать фактические формы и соответствующие файлы в унифицированный проект, вам придется немного поработать над отображением / скрытием форм и любых данных, которые вам нужно передавать между ними.

3. Джон, я думаю, это именно то, что я хочу сделать. Я никогда раньше этого не делал и ударился в поисковые запросы Google, пытаясь найти примеры кода. Есть ли у вас какие-либо ссылки, которые могли бы помочь?

4. Наверное, я немного запутался. Если у вас сейчас есть приложение winforms, а их всего три, создайте новое решение и перенесите в него все файлы. Основная форма вашего первоначального приложения будет тем, что открывает другие формы. Это не намного сложнее, чем сказать добавить новую форму в проект. Я не знаю, какие ссылки я мог бы найти, чтобы показать вам … остальные три приложения созданы не вами?

5. О, хорошо. Это намного проще, чем я это делал. Я написал все 3 приложения. Я действительно не знаю, как использовать Visual Studio, я просто собрал коды вместе с помощью поиска в Google. Чтобы более четко определить, что я задавал на ваш первоначальный вопрос: «как вызвать другую форму?»

Ответ №2:

Это очень просто.

  1. Вы можете создать новый exe-проект, winform или WPF на основе вашего предыдущего приложения.
  2. Вы можете добавить каждый проект в свое решение и добавить все три проекта в качестве ссылки на новый проект.
  3. У каждого вашего предыдущего проекта будет начальная точка. Это вам придется сделать вручную в вашем новом проекте.

WinForm имеет начальную точку в качестве приложения.Выполнить (новая основная форма());

Итак, в вашем новом проекте вы можете просто создать новый экземпляр form и запустить его.

В WPF также вам нужно просто создать экземпляр нового окна на основе выбранного и отобразить форму

Комментарии:

1. Но не приведет ли это к созданию нескольких exe-файлов? Он сказал, что не хочет распространять три.

2. Извините, я забыл упомянуть, что вы можете изменить свой проект на тип библиотеки. И если вам нужен только один exe-файл и никакой dll, тогда вам нужно добавить исходный код каждого проекта в качестве ссылки в вашем новом проекте.