Работа в папке отладки, но в другом месте
Это мое App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib" />
</assemblyBinding>
</runtime>
</configuration>
Мои библиотеки DLL, на которые есть ссылки, не копируются в локальную систему, и я скопировал библиотеки DLL в папку lib в папке отладки, и она работает хорошо, но когда я перемещаю свою программу вместе с папкой библиотеки, она не работает.
Есть ли способ, которым я мог бы заставить его работать, когда каталог программы и библиотеки в другую папку?
1 ответ
Немного опоздал к этому, но есть альтернатива, добавьте это в ваш метод Main
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve;
Создание метода
private static Assembly CurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
{
AssemblyName assyName = new AssemblyName(args.Name);
string filename = args.Name.ToLower().Split(',')[0];
string path = "c:\some path or other\"
string assembly = System.IO.Path.Combine(path, filename);
if (!assembly.EndsWith(".dll"))
assembly += ".dll";
try
{
if (System.IO.File.Exists(assembly))
return (Assembly.LoadFrom(assembly));
}
catch (Exception error)
{
// do whatever
}
return (null);
}