有没有一种快速而简单的方法(或VS宏)将WinForms应用程序转换为控制台应用程序?我有许多这样的应用程序不再需要作为Winforms应用程序。我想我可以创建一堆新项目,然后复制粘贴模块和类,但如果只是删除我拥有的单个表单并编辑/删除一些内容,那我宁愿这样做。
有没有一种快速而简单的方法(或VS宏)将WinForms应用程序转换为控制台应用程序?我有许多这样的应用程序不再需要作为Winforms应用程序。我想我可以创建一堆新项目,然后复制粘贴模块和类,但如果只是删除我拥有的单个表单并编辑/删除一些内容,那我宁愿这样做。
您可以更改项目设置,将其创建为控制台应用程序而不是 Windows 应用程序(在“解决方案资源管理器”中单击项目 Ctrl+Enter 并进行更改)。
这将编译应用程序作为控制台应用程序,并提供一个控制台。但是,您仍将获得窗体。如果您不想要 Windows Forms,您需要删除窗体并使用命令行参数或配置文件替换其功能。然后,您可以删除 Windows Forms 引用,并进行转换。
没有,这取决于程序最初的编写方式。如果原始程序员使系统相当模块化,那么这不应该花费太长时间。如果所有逻辑都在WinForms代码后面,你需要做大量工作。
这是手动编程/重构工作。
<OutputType>WinExe</ OutputType>
更改为<OutputType>Exe</ OutputType>
。如果程序员无法在打开的文件中进行简单的查找和替换而不犯错,则他们不应该从事编程。OutputType
和StartupObject
。dir /b /s *.vbproj > c:\project_listing.txt
。<DisableWinExeOutputInference>true</DisableWinExeOutputInference>
针对属性组进行设置。您的.csproj文件可能如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<DisableWinExeOutputInference>true</DisableWinExeOutputInference>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>