Ответ 1
Пока ваши библиотеки DLL являются сборками .NET, ILMerge должны иметь возможность объединить ваш exe и все его зависимости в одиночный файл.
Возможный дубликат:
Приложение .NET Windows, может ли оно быть сжато в один .exe?
Для запуска моего приложения мне нужны AxInterop.WMPLib.dll
и Interop.WMPLib.dll
, которые находятся в папке Debug и Release. Есть ли способ включить эти DLL в exe, поэтому мое приложение доступно только в одном файле?
Пока ваши библиотеки DLL являются сборками .NET, ILMerge должны иметь возможность объединить ваш exe и все его зависимости в одиночный файл.
Вы можете использовать инструмент, например boxedapp или thinstall...
Я также рекомендую boxedapp. Это отличное приложение!
Включите их как встроенные. Затем вы можете извлечь их во время выполнения.
Да, я оставил код, чтобы записать файл...
FileStream so=new FileStream("c:\\\wherever\\\x.dll",FileMode.Create);
so.Write(buf,0,ssize);
so.Close();
Дополнительные утилиты не требуются.
Например, добавьте 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();