Я создал приложение, которое использовало некоторые библиотеки extrnal, такие как Tag-lib, Naudio и Windows Media Player.Добавить Windows Media Player Dll в EXE
Поэтому они добавляют меня в мое решение (в той же папке, что и мой EXE-файл), некоторые библиотеки DLL.
Я хотел встроить эти DLL в свой EXE-файл, поэтому я просмотрел интернет и нашел некоторые варианты.
Лучший ответ я нашел это:
Embedding DLLs in a compiled executable
И это сработало, но не для всех библиотек DLL.
Он успешно внедрен Naudio и Tag-Lib, но не включен для встраивания DLL-файлов Windows Media Player.
Может ли кто-нибудь помочь мне встроить DLL Windows Media Player в EXE-приложение моего приложения?
Update:
После некоторой помощи (спасибо Mathieu Wybrecht) он работал. Я сделал все, что он сказал, но все же он не работает хорошо. EXE-файл работает отлично, я могу его переместить, и он будет работать. Но когда я нахожусь в решении проекта, я ошибаюсь по поводу недостающих Dll (The Dlls WMP, которые Costura.Fody просто вставляют ...), а затем снова копирую Dll в папку и ошибка исчезла. Он обрабатывается, чтобы построить решение, восстановить решение или запустить программу, DLL снова исчезнуть (вставить в EXE), и ошибка снова возникает ...
WMP входит в комплект поставки операционной системы. Вы не должны и не можете внедрять библиотеки DLL, которые он использует. Это COM-компонент, и для этого требуется библиотека interop, чтобы сделать ее пригодной для использования в .NET-программе. .NET 4 и VS2010 + имеют функцию «Вставить типы прерываний», больше не зависят от библиотеки interop. –
Я не понял вариант «Вставить типы взаимодействия». Вы можете мне это объяснить? –
Выберите ссылку WMP, загляните в окно «Свойства» для этой опции. Требуется VS2010 или более. –