【问题标题】:Putting all required files within one executable将所有必需的文件放在一个可执行文件中
【发布时间】:2022-03-24 05:16:27
【问题描述】:

标题

我对 C# 很陌生(虽然我来自 java,所以我很快就赶上了),在使用 Visual Studio 和构建时,我得到了一堆文件以及可执行文件,包括带有名称的 dll在我安装的一些 nuget 包中,一个 dll、pdb 等。我还意识到我不能只从该文件夹中给出 .exe,因为它引用了它周围的文件。我想将所有这些文件放入一个使用所需文件而不安装它们的最终可执行文件中。此外,我的项目使用 Tor,我唯一需要帮助的就是能够将我的项目与 Tor 打包(同样,最好在同一个可执行文件中,这样用户就不必安装 Tor 来使用我的程序.

TL;DR/summary:我如何在 1 个最终 .exe 中包含所有必需的 dll,该 .exe 还能够在其中保存另一个 exe (tor),这样就不必安装 tor 就可以工作?

我想我可以在应用程序启动时下载 tor 专家包,但如果不需要它会很好

【问题讨论】:

  • 这能回答你的问题吗? Embedding DLLs in a compiled executable
  • 您使用的是 .NET Core 还是 .NET Framework?
  • 你的可执行文件是什么?一个网站?桌面应用?
  • 我正在使用核心,但如果需要框架,我可以切换到它。
  • 我使用 ILMerge 创建单个可执行文件(我的都是 .net,我相信它只适用于 .net)。

标签: c# tor


【解决方案1】:

我找到了一个我认为现在可以使用的答案:How to merge multiple .NET Core assemblies into a single one (.dll / .exe)?

这仍然不能解决尝试将 tor 保留在可执行文件中的问题,但我想我只是将 tor 下载到某个临时文件夹中,直到找到更好的解决方案。

【讨论】:

  • 您可以将 .exe 作为资源保存在二进制文件中(可能先压缩它),然后将其写入磁盘,例如到一个临时文件夹,执行。
【解决方案2】:

使用 .net 核心 5.0 。与 Ilmerge nuget 管理器一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2011-08-23
    • 2012-04-19
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多