【问题标题】:C# How to include DLL from Nuget in my EXEC# 如何在我的 EXE 中包含来自 Nuget 的 DLL
【发布时间】:2020-11-15 12:22:41
【问题描述】:

如何在我的 EXE 中包含来自 NuGet 的 DLL 包?这是为了拥有一个独立的 EXE,而不用担心它之外的额外文件。

我正在构建一个针对 .NET Framework 4.7.2 的简单 C# exe。我从 NuGet 下载了 CommandLine(命令行解析器)。包在这里:https://github.com/commandlineparser/commandline

我想在我的 EXE 中包含这个 DLL。

提前致谢。

【问题讨论】:

  • 这个问题与Nuget无关,所以我建议从中删除所有Nuget引用。作为一个可能的答案:使用ILMerge
  • 您可以将dll作为资源嵌入并在runtim中解析

标签: c# dll embed


【解决方案1】:

如果您有一个特定的 DLL,而不是来自 NUGET,那么您将手动添加它。

将对 dll 的引用添加到项目的 References 文件夹中。然后,任何访问您想要的 DLL 命名空间的源文件都需要包含一行来包含命名空间。您必须拥有 DLL 的文档。

using My.DLL.Namespace.Subspace; //Or whatever...

如果它是一个由 NUGET 管理的包,你应该只需要使用 NUGET 来安装它。问题可能是您正在使用存储库,并且只是从同事(拼写?)设置中提取,并且由于某些原因他们没有提交文件。不过,我认为这不一定是问题所在,因为我记得在某处读过 NUGET 会注意到丢失的文件并下载它们。

编辑:我想念你的问题。您希望将 DLL 编译到您的可执行文件中。我不确定如何做到这一点。我最初(但未经测试)的反应是右键单击 DLL,可能会将包含内容从“已复制”或“始终替换”更改为“已编译”,并且可能会将其包含到您的可执行文件中。

不应链接到外部资源...但这是来自 Microsoft 论坛的来源。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/5c428cab-35f9-43c5-a516-05226fc0cb8c/how-to-compile-a-dll-into-my-exe-file?forum=vbgeneral

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多