Преобразуйте Приложение Winform для Консольного подключения к приложению

Существует ли быстрый и грязный путь (или Макрос VS) для преобразования приложения WinForms в Консольное Приложение? У меня есть много этих приложений, которые больше не необходимы как приложения Winforms. Я предполагаю, что мог создать набор новых проектов и скопировать модули вставки и классы, но если это - просто вопрос удаления единственной формы, которую я имею и редактирующий/удаляющий несколько вещей, я сделал бы это.

7
задан Todd Main 6 August 2010 в 19:20
поделиться

3 ответа

Вы можете изменить настройки проекта, чтобы создать консольное приложение вместо приложения Windows (просто нажмите Ctrl + Enter в проекте в окне решения и внесите это изменение).

Это скомпилирует приложение как консольное приложение, и вы получите консоль. Однако вы все равно получите свои формы. Если вы не хотите использовать Windows Forms, вам необходимо удалить формы и заменить их функциональные возможности аргументами командной строки или конфигурацией. Затем вы можете удалить ссылки Windows Forms, и они будут преобразованы.

14
ответ дан 6 December 2019 в 06:48
поделиться

Когда мне пришлось это сделать, я создал пустой проект WinForm и пустой проект консоли, а затем сравнил различия. Отличия незначительны. Я открыл все проекты в виде файлов XML в Visual Studio, а затем произвел поиск и замену по мере необходимости, исходя из различий. Сработало хорошо.

Затем я открывал каждый проект и исправлял все ошибки, такие как отсутствие метода точки входа и так далее.

Кроме того, вы можете записать временный макрос для выполнения некоторых повседневных задач.


Обновление на основе комментариев

Различия в файлах проекта между приложениями "Windows Forms" и "Console" незначительны. Может быть, мне стоило использовать работу trival .

Все, что вам нужно сделать, это изменить WinExe на Exe . Если программист не может выполнить простой поиск и замену открытых файлов, не допустив ошибки, он не должен заниматься программированием.

Мне пришлось сделать это с более чем 50 приложениями для клиента. Один консультант сказал им, что на внесение изменений потребуется неделя. Я сказал своему клиенту, что могу сделать это за час и на месте. Самым сложным в этой работе было застревание в пробке.

Я открыл все файлы проекта как XML, затем изменил OutputType и StartupObject в файлах проекта с помощью функции поиска и замены «в открытых документах».

Я создал макрос, который будет добавлять «программный» модуль VB.NET и еще один для класса C # с необходимой «основной» точкой входа и кодом запуска приложения.

Однажды я написал небольшую программу, которая загружала каждый проект в Visual Studio 2008.Я запустил соответствующий макрос в зависимости от того, был ли проект VB.NET или C #. Я исправлял любые ошибки, компилировал, запускал приложение и закрывал. Затем небольшая программа запускает другую Visual Studio со следующим проектом. Самой сложной частью утилиты было получение путей ко всем проектам, потому что мне приходилось использовать DOS, как в dir / b / s * .vbproj> c: \ project_listing.txt .

Если у OP есть только несколько проектов, я предлагаю открыть каждый проект и внести необходимые изменения.

Я использовал аналогичную технику для преобразования около 20 проектов WinCE / WinForms и Console / VB.NET в проекты Desktop / WinForms и Console / VB.NET, в которых мне приходилось преобразовывать файлы проектов и форм, которые содержали существенные различия, особенно файлы форм.

По-моему, вам, люди, нужно приободриться. Через десять минут все это не имеет значения.

3
ответ дан 6 December 2019 в 06:48
поделиться

Нет, это не так. Это чрезвычайно зависит от того, как программа была написана изначально. Если программист изначально сделал систему достаточно модульной, это не займет у вас много времени. Если вся логика находится в WinForms code-behind, вам предстоит серьезная работа.

Это ручная работа по программированию/рефакторингу.

6
ответ дан 6 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: