将Windows Media Player Dll添加到EXE

本文关键字:添加 EXE Dll Player Windows Media | 更新日期: 2023-09-27 18:15:12

我构建了一个应用程序,使用了一些外部库,如Tag-lib, Naudio和Windows Media Player。

所以他们把我添加到我的解决方案中(和我的EXE文件在同一个文件夹中),一些dll。

我想把这些dll嵌入到我的EXE文件中,所以我在网上找到了一些选项。

我找到的最佳答案是:

在编译后的可执行文件中嵌入dll

它工作,但不是所有的dll。

它成功嵌入了Naudio和Tag-Lib,但无法嵌入Windows Media Player的dll。

谁能帮我嵌入Windows媒体播放器的dll到我的应用程序的EXE?

更新:

经过一些帮助(感谢Mathieu Wybrecht),它工作了。我照他说的做了,但还是不行。EXE文件工作完美,我可以移动他,它将工作。但是当我在项目的解决方案中,它错误地告诉我丢失的dll (the dll of WMP that Costura)。Fody只是嵌入…),然后我再次将Dll复制到文件夹,错误消失了。它成功构建解决方案,重建解决方案或启动程序,dll再次消失(嵌入到EXE),错误再次出现…

将Windows Media Player Dll添加到EXE

你的问题不清楚。"当我开始使用Windows Media Player时,它添加了一个DLL文件,而现在它没有……"

  • 在哪里"它"添加了一个DLL文件?
  • "it"是什么?您的应用程序呢?Windows Media Player?
  • 添加了什么DLL ?

如果问题是您想在您的exe中嵌入更多的DLL,请按照您在库图拉. fody中找到的操作方法。

如果问题发生在运行时,确保所有嵌入的DLL不会试图加载更多的依赖项。你可以使用"Dependency Walker"来检查它们的依赖关系,它适用于x86和x64平台。

编辑:你编辑了你的问题,现在我也回来编辑我的答案了:)

所以,你成功地嵌入了一些DLL,但不是每个DLL。这可能与以下一些原因有关:

  • 其中一些是本地DLL(你必须遵循一个特定的过程来嵌入):你可以参考Fody/Costura非托管程序集和Fody/Costura原生库
  • 对于其中的一些,参考在你的项目可能没有标记为"复制本地=真"和/或不被认为是"嵌入式资源"的某些原因
  • 也许你的库是正确嵌入的,但仍然存在于你的输出目录中,因为你可能没有安装清洁输出目标?看看Clean输出目录
  • 或者你可能面临另一个更具体的问题,试着看看Fody/Costura问题,你可能会发现你想要的库没有嵌入的原因。