代码之家  ›  专栏  ›  技术社区  ›  Todd Main

将Winform应用程序转换为控制台应用程序

  •  6
  • Todd Main  · 技术社区  · 15 年前

    有没有一种快速而肮脏的方法(或VS宏)将WinForms应用程序转换为控制台应用程序?我有许多这样的应用程序,不再需要作为Winforms应用程序。我想我可以创建一堆新的项目,复制粘贴模块和类,但如果只是删除我拥有的单个表单和编辑/删除一些东西,我宁愿这样做。

    4 回复  |  直到 15 年前
        1
  •  15
  •   Reed Copsey    15 年前

    您可以更改项目设置以创建控制台应用程序而不是Windows应用程序(只需在“解决方案”窗口中的项目上按Ctrl+Enter,然后进行更改)。

        2
  •  6
  •   Dave Markle    15 年前

    不,没有。这完全取决于程序最初是如何编写的。如果最初的程序员使系统相当模块化,这应该不会花费你太长时间。如果所有的逻辑都在WinForms代码中,那么您需要做一些严肃的工作。

        3
  •  4
  •   Community CDub    5 年前

    此外,您还可以录制一个临时宏来执行一些普通的操作。


    根据评论更新

    “Windows窗体”和“控制台”应用程序之间的项目文件差异很小。也许我应该用这个工作 琐碎的 .

    <OutputType>WinExe</OutputType> <OutputType>Exe</OutputType> . 如果程序员不能进行简单的搜索并用打开的文件替换而不犯错误,那么他们就不应该进行编程。

    我必须为一个客户做50多个申请。一位顾问告诉他们需要一周的时间才能做出改变。我告诉我的客户我可以在一小时内现场完成。这项工作最困难的部分是堵车。

    我以XML格式打开了所有项目文件,然后更改了 OutputType StartupObject 在项目文件中使用搜索和替换“在打开的文档中”。

    我创建了一个宏,它将添加一个“program”VB.NET模块和一个C#类的另一个模块,其中包含所需的“main”入口点和应用程序运行代码。

    dir /b /s *.vbproj > c:\project_listing.txt .

    如果OP只有少数几个项目,那么我建议他们打开每个项目并进行必要的更改。

    我使用了类似的技术来转换大约20个WinCE/WinForms&控制台/VB.NET项目到桌面/WinForms&在Console/VB.NET项目中,我必须转换包含主要差异的项目和表单文件,尤其是表单文件。

    在我看来,你们需要放松。十分钟后这些都无关紧要。

        4
  •  3
  •   SOLIDapps    9 年前

    在Visual Studio 2015中 项目 菜单选择 属性 输出类型 Windows应用程序 控制台应用程序

        5
  •  1
  •   Robert    4 年前

    很烦人的是,切换 控制台应用程序 不再适用于.net core目标(.net core 3.0、.net core 3.1、.net 5.0)。控制台永远不会出现。

    要恢复此功能,请编辑项目的.csproj文件并添加

    <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>
    

    Microsoft's explanation