Могу ли я включить DLL в EXE (в Visual Studio)? [Дубликат]
-
20-08-2019 - |
Вопрос
Возможный дубликат:
.NET-приложение Windows, можно ли его сжать в один .exe?
Для запуска моего приложения мне нужны AxInterop.WMPLib.dll
и Interop.WMPLib.dll
, которые находятся в папке Debug and Release. Есть ли способ включить эти библиотеки в 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();