在 C# Forms 应用程序中包含 .dll 文件

Including .dll files in C# Forms Application

我正在使用 Visual Studio 2019 构建 C# Forms 应用程序。从控制台应用程序发布 .exe 文件时,我可以选择将所有 .dll 文件包含到 .exe 中,这意味着我的应用程序的用户只需要下载一个文件。但是,当从 Forms 应用程序发布 .exe 时,我不得不独立包含所有这些 .dll 文件:

View of folder with .dll files

有没有办法将这些 .dll 文件包含在 .exe 中,这样我只需要将 .exe 文件发送给某人,他们就可以 运行 它,类似于它的可能性对于控制台应用程序?

编辑:我发现我在 .NET Core 中并且应该在 .NET Framework 中。我是 C# 的新手,并不知道其中的区别。这个问题现在已经解决了!如果有人 运行 遇到这个问题,只需将您的代码复制粘贴到 .NET Framework 并听取说明中的说明。

您需要在构建步骤中将配置设置更改为“自包含”:

使用 dotnet cli

dotnet publish -r win-x64 -c Release --self-contained

使用Visual Studio

  1. <PublishSingleFile>true</PublishSingleFile> 添加到您的项目文件。

  2. Solution Explorer 窗格中,右键单击要发布的项目。 Select 发布.

    如果您还没有发布配置文件,请按照说明创建一个并选择文件夹目标类型。

  3. 选择编辑

  4. 配置文件设置对话框中,设置以下选项:

    • 部署模式设置为独立依赖框架.
    • 目标运行时设置为您要发布到的平台。 (必须不是 Portable。)
    • Select 生成单个文件.

    选择保存以保存设置并return到发布对话框。

  5. 选择发布将您的应用发布为单个文件。

有关详细信息,请参阅 Visual Studio Docs: Single file deployment and executable


Embedding DLLs in a compiled executable

的副本

我认为将所有文件编译成一个文件不是一个好主意。如果您想下载单个文件,可以将它们打包成自解压 zip 格式(winRAR、winzip 或 7zip)。祝你好运~~