Visual Studio 2019/.NET 5:编译没有依赖项的单个项目创建应用程序 DLL

Visual Studio 2019/.NET 5: Compiling Single Project with No Dependencies Creates Application DLL

我用一台新笔记本电脑从 VS15 搬到了 VS19,我的新项目是一个单一的 Windows Forms 项目,它将在客户端的服务器上提取指标、统计信息和一些其他信息并生成他们发回的输出文件。要求是单个 EXE。

但是,由于我的所有代码都在一个项目中,并且没有 .NET 本身之外的依赖项,我得到了 [application].exe 和 [application].dll。这是不可接受的,我找不到禁用它的选项。

有谁知道这是哪里,还是我必须回到 VS 2015?

谢谢。

这是 .NET Core / .NET 5 的新常态:.exe 是启动 .NET 运行 时间的包装器,所有应用程序代码都在 .dll 中。

您有两个选择:

  • 您可以返回到 .NET Framework 4.x(无需为此降级 VS——您可以将 VS2019 与面向 .NET 的 C# 9 一起使用 4.x)
  • 您可以查看 .NET 5 single-file deployment。请注意,这将需要“发布”步骤来生成单个文件; “构建”步骤的正常结果仍然是 .exe+.dll。
    • 您可以使用“依赖于框架”的发布来避免在您的应用程序中包含 .NET 运行time(这避免了单独的本机 运行time dll)
    • 或者您可以使用 /p:IncludeNativeLibrariesInSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true 强制将本机 运行time dll 包含在 .exe 文件中。