Создание «консольных» и «оконных» конфигураций в проекте Visual Studio - PullRequest
1 голос
/ 13 июля 2010

У меня есть проект в Visual Studio 2008. Я хочу иметь два разных способа его запуска - либо в виде обычного приложения Windows (чтобы он получал окно, и я мог выполнять графические операции), либо как консольное приложение (чтобыу него нет окна и графика не работает).Есть ли способ настроить его так, чтобы я мог использовать параметр командной строки или что-то для переключения между этими двумя параметрами при запуске?Есть ли способ настроить две разные конфигурации в одном проекте Visual Studio, чтобы я мог создать любую из них?Или мне нужно создать два совершенно отдельных проекта, один для оконного приложения и один для консольного приложения.

Ответы [ 4 ]

2 голосов
/ 13 июля 2010

Рекомендуемый (не хакерский) способ сделать это - поместить всю логику в библиотеку классов, а затем создать два отдельных проекта для консоли и приложения Windows. Затем добавьте библиотеку классов в качестве ссылки на эти проекты, как предложено Крисом.

У вас не может быть одного приложения, которое одновременно выступает в качестве консоли и приложения Windows. Основная причина в том, что консольное и оконное приложения отличаются на двоичном уровне с разными флагами в заголовке PE.

Однако существуют некоторые хаки, которые позволяют имитировать такое поведение с помощью функций Windows API (AttachConsole и CreateConsole). Подробнее см.

C #: возможно ли, чтобы одно приложение работало как консольное или Windows-приложение в зависимости от переключателей?

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

2 голосов
/ 13 июля 2010

Да, вы можете использовать Configuration Manager для создания новых конфигураций.Настройки проекта могут быть (есть) разные для каждой конфигурации.Таким образом, вы можете создать две конфигурации, а в настройках проекта установить «Тип вывода» как «Приложение Windows» или «Консольное приложение».

Вот как вы это делаете: В раскрывающемся списке «Тип сборки» («С отладкой»и Отпустите параметры по умолчанию), выберите «Configuration Manager».Добавьте новую конфигурацию и назовите ее «Debug (Console)» - выбрав эту новую конфигурацию, перейдите в свойства проекта и установите «Тип вывода» для «Консольное приложение».Повторите, чтобы добавить конфигурацию Windows Forms.

1 голос
/ 13 июля 2010

Возможно, вы захотите разделить ваш проект на три части.

  1. Сборка / dll (в зависимости от вашего языка), которая выполняет эту работу.
  2. Консольное приложение.
  3. Приложение Windows.

Последние два являются просто двумя различными интерфейсами на ассемблере / dll, которые выполняют всю работу.

0 голосов
/ 13 июля 2010

Так же, как у вас есть конфигурации Debug и Release по умолчанию, вы можете создавать свои собственные.Щелкните правой кнопкой мыши проект, выберите «Диспетчер конфигурации», щелкните раскрывающийся список «Конфигурация активного решения» и выберите «Новый ...».Введите имена, такие как «CmdLine Debug», «Windowed Release» и т. Д., Удалите другие конфигурации.Теперь щелкните правой кнопкой мыши проект, выберите «Свойства» и настройте необходимые параметры для соответствующей конфигурации.

Tp, чтобы упростить вашу жизнь: поместите свойства, общие для всей конфигурации, в листы свойств и используйте эти листы везде,Таким образом, если вы хотите изменить опион, который применяется ко всем конфигурациям, вам нужно будет сделать это только один раз.

...