gpt4 book ai didi

c# - 在另一个应用程序域中加载独立程序集

转载 作者:太空狗 更新时间:2023-10-30 00:58:17 25 4
gpt4 key购买 nike

简单的问题,您可能很容易回答。

我的应用程序的同一输出文件夹中有一个名为“MigrationSteps.dll”的 dll。我想要做的是将这个程序集加载到一个新的 AppDomain 中,并在此 DLL 中的一个类的实例上执行一个方法。

这是我的代码

       string migrationStepsDllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MigrationSteps.dll");
AppDomainSetup appDomainSetup = new AppDomainSetup() { PrivateBinPath = AppDomain.CurrentDomain.BaseDirectory };
Evidence evidence = AppDomain.CurrentDomain.Evidence;

AppDomain appDomain = AppDomain.CreateDomain("MigrationAppDomain", evidence, appDomainSetup);

//NOT WORKING
Assembly assembly = appDomain.Load(@"C:\Output\Debug\OptimeToolbench\MigrationSteps.dll");

//WORKING
Assembly assembly = Assembly.LoadFrom(@"C:\Output\Debug\OptimeToolbench\MigrationSteps.dll"); ****works.

//This part works well
Type type = assembly.GetType("MigrationSteps.Foo");
object foo = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("HelloWorld");
methodInfo.Invoke(foo, null);
AppDomain.Unload(appDomain);

每当指示为不工作的行抛出

FileNotFoundException

.

这是为什么?

谢谢你的时间。

最佳答案

将“C:\Output\Debug\OptimeToolbench\”添加到 AppDomain 的 PrivateBinPath。也不要传递文件名,传递程序集名称——我假设那是 MigrationSteps。

关于c# - 在另一个应用程序域中加载独立程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com