doctorraz Posted September 29, 2022 Report Share Posted September 29, 2022 (edited) При сборке dll, сторонние библиотеки копируются в выходной каталог. И мое приложение находит эти библиотеки, так , как в первую очередь ищет в своем каталоге Но если я хочу эти библиотеки переложить в каталог например bim, рядом с загружаемой dll, то приложение найти и подгрузить библиотеки не может прописать пути поиска в App.config <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin;bin2\subbin;bin3"/> </assemblyBinding> </runtime> работает только для исполняемых файлов (ехе) т.к. при загрузке в нано dll поиск идет от nCad.exe --------- собственно вопрос, как задать путь относительно dll? Edited December 2, 2022 by doctorraz поправил название Quote Link to comment Share on other sites More sharing options...
Ivanco Posted September 29, 2022 Report Share Posted September 29, 2022 Имя вроде должно полностью совпадать : App.config --> App.dll.config (при том что в этой dll находится entry point) App.config --> App.exe.config Написано "bim" в конфиге "bin". Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 29, 2022 Author Report Share Posted September 29, 2022 3 минуты назад, Ivanco сказал: App.config --> App.dll.config так и есть 4 минуты назад, Ivanco сказал: Написано "bim" в конфиге "bin". ??? ----------- вот смотри, собираю с таким конфигом <?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="bin;bin2\subbin;bin3"/> </assemblyBinding> </runtime> </configuration> экзешники библиотеки в bin находят... а дллка не находит, но если положу подключаемые дллки в bin нанокада, то все работает ---------- я так понимаю, что для экзешников исполняемый путь от расположения экзешника а для загружаемой дллки, исполняемый путь это от наноэкзешника??? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 30, 2022 Author Report Share Posted September 30, 2022 (edited) нашел "решение" сильно в лоб в АК не проверял((( Спойлер //sPath путь к этой сборке string[] asmPaths = Directory.GetFiles(sPath,"PdfSharp-gdi.dll", SearchOption.AllDirectories); if (asmPaths.Length > 0) { string asmPath = asmPaths[0];//хватаем первую в списке if (File.Exists(asmPath)) { object vEho = App.Application.GetSystemVariable("CMDECHO"); Cad.SetSystemVariable("CMDECHO", 0); //HACK загружаем библиотеку Cad.DocumentManager.MdiActiveDocument.Editor.Command(new object[] { "netload", "\"" + asmPath + "\"" }); Cad.SetSystemVariable("CMDECHO", vEho); } } upd немного поправил, теперь ищет во всех папках в каталоге основной dll работает из метода Initialize Edited September 30, 2022 by doctorraz 2 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted December 2, 2022 Author Report Share Posted December 2, 2022 рабочее решение https://adn-cis.org/forum/index.php?topic=10332.msg47741#msg47741 1 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.