Можно ли включить dll в exe (в Visual Studio)?

Возможный дубликат:
Приложение .NET Windows, может ли оно быть сжато в один .exe?

Для запуска моего приложения мне нужны AxInterop.WMPLib.dll и Interop.WMPLib.dll, которые находятся в папке Debug и Release. Есть ли способ включить эти DLL в exe, поэтому мое приложение доступно только в одном файле?

Ответ 1

Пока ваши библиотеки DLL являются сборками .NET, ILMerge должны иметь возможность объединить ваш exe и все его зависимости в одиночный файл.

Ответ 2

Вы можете использовать инструмент, например boxedapp или thinstall...

Ответ 3

Я также рекомендую boxedapp. Это отличное приложение!

Ответ 4

Включите их как встроенные. Затем вы можете извлечь их во время выполнения.

Ответ 5

Да, я оставил код, чтобы записать файл...

FileStream so=new FileStream("c:\\\wherever\\\x.dll",FileMode.Create);

so.Write(buf,0,ssize);

so.Close();

Дополнительные утилиты не требуются.

Ответ 6

Например, добавьте x.dll в проект и установите для его действия Build Action Embedded Resource.

Чтобы извлечь:

 string AppPath=Assembly.GetExecutingAssembly().Location;
 Assembly ThisAssembly=Assembly.LoadFrom(AppPath);
 System.IO.Stream fs=ThisAssembly.GetManifestResourceStream("yourproectname.x.dll");
 int ssize=(int)fs.Length;
 byte [] buf=new byte[ssize];
 fs.Read(buf,0,ssize);
 fs.Close();