将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文件,而现在它没有……"
- 在哪里"它"添加了一个DLL文件?
- "it"是什么?您的应用程序呢?Windows Media Player?
- 添加了什么DLL ?
如果问题是您想在您的exe中嵌入更多的DLL,请按照您在库图拉. fody中找到的操作方法。
如果问题发生在运行时,确保所有嵌入的DLL不会试图加载更多的依赖项。你可以使用"Dependency Walker"来检查它们的依赖关系,它适用于x86和x64平台。
编辑:你编辑了你的问题,现在我也回来编辑我的答案了:)
所以,你成功地嵌入了一些DLL,但不是每个DLL。这可能与以下一些原因有关:
- 其中一些是本地DLL(你必须遵循一个特定的过程来嵌入):你可以参考Fody/Costura非托管程序集和Fody/Costura原生库
- 对于其中的一些,参考在你的项目可能没有标记为"复制本地=真"和/或不被认为是"嵌入式资源"的某些原因
- 也许你的库是正确嵌入的,但仍然存在于你的输出目录中,因为你可能没有安装清洁输出目标?看看Clean输出目录
- 或者你可能面临另一个更具体的问题,试着看看Fody/Costura问题,你可能会发现你想要的库没有嵌入的原因。