Как загрузить или добавить ссылку и использовать ее в другом домене приложения в c# - PullRequest
0 голосов
/ 27 мая 2020

когда я загружаю свою dll в другой домен приложения, она загружается правильно, но когда я вызываю exe, который нужен для dll, он выдает исключение

этот код взят из другого вопроса на StackOverFlow

мой код:

  static void Main(string[] args)
    {

        AppDomain app = AppDomain.CreateDomain("seco");



        //my dll that i want to add to my app domain
        string path = @"D:\vs projects\ConsoleApplication17\ConsoleApplication17\bin\Debug\lom.dll";

        Type type = typeof(Proxy);
        var asmLoaderProxy = (Proxy)app.CreateInstanceAndUnwrap(

            type.Assembly.FullName, 

            type.FullName);


        asmLoaderProxy.GetAssembly(path); //load succed here 


        // the exe that needs to the dll 
        app.ExecuteAssembly("op.exe"); // -> throw exception FileNotFoundException here

        AppDomain.Unload(app);



        Console.WriteLine("finished");
        Console.ReadKey();
    }

    [Serializable]
    public class Proxy 
    {
        public Assembly GetAssembly(string assemblyPath)
        {
            try
            {
                return Assembly.LoadFrom(assemblyPath);
            }
            catch (Exception)
            {
                return null;
                // throw new InvalidOperationException(ex);
            }
        }
    }

}

в чем моя ошибка? примечание -> dll имеет один класс, у которого есть один метод, который печатает «print hello in dll»

, а exe берет экземпляр из класса и вызывает метод

спасибо :)

1 Ответ

0 голосов
/ 28 мая 2020

По вашему описанию делаю тест.

Однако я обнаружил, что могу успешно запустить код без каких-либо исключений.

Здесь я хочу упомянуть, что нам нужно использовать абсолютный путь около "op.exe".

Например: @"D:\sample\TestDll\ConsoleApp1\bin\Debug\op.exe"

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...