У меня есть 3 dlls, загруженные в ресурсы. Они переключаются как встроенные ресурсы. У меня есть такой код, который загружает только одну DLL в Assembly. Как загрузить все DLL?Assembly.Load 3 dlls
public partial class Main : Form
{
public Main()
{
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
InitializeComponent();
}
public static Assembly AssemblyResolve(object sender, ResolveEventArgs args)
{
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream(assembly.GetManifestResourceNames()[3]))
{
if (stream == null)
return null;
byte[] rawAssembly = new byte[stream.Length];
stream.Read(rawAssembly, 0, (int)stream.Length);
return Assembly.Load(rawAssembly);
}
}
это может помочь:. во время компиляции, emedded ресурсы называются «projectname.foldername [.morefoldernames] .filename.ext», хотя, Я вообще никогда не рекомендовал бы встраивать сборки. Вам понадобится действительно хорошая причина не копировать их в выходную папку и загружать их обычно. –
Не стесняйтесь задавать свои вопросы. Если вы решите проблему самостоятельно, не используя ни один из ответов, вы должны опубликовать свой собственный ответ на вопрос. Затем вы можете принять этот ответ через 2 дня (пожалуйста, сделайте это, если у вас нет вашего вопроса, вы будете получать автоматическое продвижение на главную страницу в качестве вопроса без принятого ответа) –