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

Posted

技术标签:

【中文标题】在 C# Forms 应用程序中包含 .dll 文件【英文标题】:Including .dll files in C# Forms Application 【发布时间】:2021-10-25 20:32:11 【问题描述】:

我正在使用 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 并听取说明中的说明即可。

【问题讨论】:

有很多方法可以打包和部署废弃的遗留框架应用程序和更现代的 .net core + 应用程序,但是不清楚您使用的是什么框架,您选择了什么,为什么要这样做以及你有什么限制。 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

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

使用dotnetcli

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

使用 Visual Studio

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

    解决方案资源管理器窗格中,右键单击要发布的项目。选择发布

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

    选择编辑

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

    部署模式设置为自包含框架依赖。 将目标运行时设置为您要发布到的平台。 (必须是便携以外的东西。) 选择生成单个文件

    选择保存以保存设置并返回发布对话框。

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

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


Embedding DLLs in a compiled executable 的副本

【讨论】:

I'm seeing a significantly different publishing menu than you are. 我看到了您在发布控制台应用程序时所做的菜单。 更新:原来我使用的是 .NET Core,我应该一直使用 .NET Framework。复制粘贴我的代码(并学习如何安装 Newtonsoft)解决了这个问题。谢谢你的帮助!!!【参考方案2】:

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

【讨论】:

以上是关于在 C# Forms 应用程序中包含 .dll 文件的主要内容,如果未能解决你的问题,请参考以下文章

C# 在工具箱中包含派生控件

在哪里放置以及如何在 c++ 项目中包含 dll 文件?

在安装项目中包含文件依赖项

如何在表单的显示中包含不可编辑的信息? [复制]

C#:如何包含依赖的 DLL?

有没有办法在 C# 程序中包含 C++ 命令? [复制]