Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Размещение используемой dll в ресурсах внутри exe


Автор: RUVATA 25.2.2011, 15:39
Всем доброго времени суток...
среда Visual Studio 2010

Во время разработки проектов, Visual Studio позволяет включать в него ресурсы,

Подскажите используемую в коде dll можно включить в ресурсы, так чтобы она в итоге оказалась в скомпилированном exe (внутри)?
Ели да, то как тогда правильно ее подключать к проекту (в смысле ссылку)
Да и вообще в принципе, насколько я понял в финальный exe можно включить разнообразные используемые файлы... например *.txt или *.xml
Как использовать ресурсы в коде ?






Автор: jonie 25.2.2011, 21:28
Цитата(RUVATA @  25.2.2011,  15:39 Найти цитируемый пост)

Подскажите используемую в коде dll можно включить в ресурсы, так чтобы она в итоге оказалась в скомпилированном exe (внутри)?

да, можно

Цитата(RUVATA @  25.2.2011,  15:39 Найти цитируемый пост)
Ели да, то как тогда правильно ее подключать к проекту (в смысле ссылку)

добавляете в проект. в свойствах ставити EmbededResource
Далее вам при загрузке надо ее грузить - подписывайтес на событие http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx и там, используя ResourceManager достаете ресурс в виде Stream. Готовый пример: http://blog.magenic.com/blogs/brante/archive/2008/04/14/Embedded-Assembly-Linker.aspx


А вообще есть ILMerge который все это делает иначе.

Автор: wester 25.2.2011, 22:14
jonie, 
а по производительности что лучше ?

Автор: jonie 26.2.2011, 00:33
wester, ilmerge знамо дело быстрее будет, т.к. сборка получается одна, без всяких доп. сборок. Но надо пологать что загрузка сборок ничтожно мало занимает, в отличие от например каких-то расчетов, потому разницу вы врядли увидите...

Автор: VirusUZ 28.2.2011, 09:30
View-> Solution Explorer-> Referense -> Add Referense -> Browse...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)