Visual Studio 2019将C#程序导出为DLL而不是EXE?

时间:2019-05-08 15:20:11

标签: c# build visual-studio-2019

我很困惑,因为我在Visual Studio 2019中创建了一个新项目。我已经用不同的项目尝试了这三遍,并且每次将其导出为DLL而不是EXE。以下是重现此问题的步骤:

  
      
  1. 新项目
  2.   
  3. 控制台应用程序(.NET Core)
  4.   
  5. 设置新项目的详细信息,然后点击“创建”按钮
  6.   
  7. 将Microsoft.Win32.Registry NuGet软件包添加到项目中
  8.   
  9. 添加以下代码:
  10.   
using Microsoft.Win32;
using System;

namespace Key_Statistics_Startup_Changer {
    class Program {
        static void Main(string[] args) {
            if (args[0] == "CREATE_STARTUP") {
                RegistryKey rkey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                rkey.SetValue("Key Statistics", @"C:\Program Files\Key Statistics\Key Statistics.exe");
            }
            else if (args[0] == "REMOVE_STARTUP") {
                RegistryKey rkey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                rkey.DeleteValue("Key Statistics");
            }
        }
    }
}
  
      
  1. 构建并运行项目
  2.   

当我这样做时,当我通过Visual Studio输入参数时,程序确实会在启动时创建或删除所需的注册表(代码试图完成的工作)。但是,在构建该项目时,我的Key Statistics Startup Changer\bin\Debug文件夹为我提供了一个包含以下文件的子目录netcoreapp2.1

  

关键统计信息启动Changer.deps.json
  关键统计信息启动程序Changer.dll
  关键统计启动Changer.pdb
  关键统计信息启动Changer.runtimeconfig.dev.json
  关键统计启动Changer.runtimeconfig.json

我很肯定我有正确的文件夹可以在其中导出文件,并且每次我重新创建步骤(确保我没有选择C#DLL项目)时,都会发生这种情况。

这是怎么回事?

2 个答案:

答案 0 :(得分:0)

选择Console App (.NET Core)而不是Console App (.NET Framework)时出错, 简而言之,从.net核心获取.exe比.net框架更难。

不过不用担心,您只需复制所有代码并将其粘贴到新代码中 Console App (.NET Framework)项目。

答案 1 :(得分:0)

右键单击该项目,然后转到属性。选择 Application 标签,然后在右侧有一个名为 Output Type 的选项。您可以选择任何想要的东西。例如,如果您希望您的项目发出DLL,只需选择 Class Library

Screenshot for choosing output type for a project