Существует ли быстрый и грязный путь (или Макрос VS) для преобразования приложения WinForms в Консольное Приложение? У меня есть много этих приложений, которые больше не необходимы как приложения Winforms. Я предполагаю, что мог создать набор новых проектов и скопировать модули вставки и классы, но если это - просто вопрос удаления единственной формы, которую я имею и редактирующий/удаляющий несколько вещей, я сделал бы это.
Вы можете изменить настройки проекта, чтобы создать консольное приложение вместо приложения Windows (просто нажмите Ctrl + Enter в проекте в окне решения и внесите это изменение).
Это скомпилирует приложение как консольное приложение, и вы получите консоль. Однако вы все равно получите свои формы. Если вы не хотите использовать Windows Forms, вам необходимо удалить формы и заменить их функциональные возможности аргументами командной строки или конфигурацией. Затем вы можете удалить ссылки Windows Forms, и они будут преобразованы.
Когда мне пришлось это сделать, я создал пустой проект WinForm и пустой проект консоли, а затем сравнил различия. Отличия незначительны. Я открыл все проекты в виде файлов XML в Visual Studio, а затем произвел поиск и замену по мере необходимости, исходя из различий. Сработало хорошо.
Затем я открывал каждый проект и исправлял все ошибки, такие как отсутствие метода точки входа и так далее.
Кроме того, вы можете записать временный макрос для выполнения некоторых повседневных задач.
Различия в файлах проекта между приложениями "Windows Forms" и "Console" незначительны. Может быть, мне стоило использовать работу trival .
Все, что вам нужно сделать, это изменить
на
. Если программист не может выполнить простой поиск и замену открытых файлов, не допустив ошибки, он не должен заниматься программированием.
Мне пришлось сделать это с более чем 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, в которых мне приходилось преобразовывать файлы проектов и форм, которые содержали существенные различия, особенно файлы форм.
По-моему, вам, люди, нужно приободриться. Через десять минут все это не имеет значения.
Нет, это не так. Это чрезвычайно зависит от того, как программа была написана изначально. Если программист изначально сделал систему достаточно модульной, это не займет у вас много времени. Если вся логика находится в WinForms code-behind, вам предстоит серьезная работа.
Это ручная работа по программированию/рефакторингу.