我有一个 .NET 应用程序,它创建多个单独的 AppDomain 来运行一些可插入代码,每个 AppDomain 都设置自己的 WCF 命名管道服务来与中央应用程序进行通信。
但是我想为每个应用程序域设置不同的工作目录,以便每个应用程序域中任何相对路径的基本文件夹都不同。因此,这些插件可以通过“./MyCustomFolder”以所有正常的文件处理方式创建自己的文件夹结构。
不幸的是,我发现 Directory.SetWorkingDirectory() 正在为整个过程设置它(不隔离到单个应用程序域),这导致一些插件写入其他插件目录。
是否可以更改不同 AppDomain 的工作目录,或者我是否需要启动全新的流程来完成我想要的操作?如果我需要整个流程来完成我之后要做的事情,您对尝试以稳定的方式有效管理父/子流程有何看法?
最佳答案
CurrentDirectory(或WorkingDirectory)是每个进程的。
但是,您可以在创建应用程序域时设置程序集探测路径。看AppDomainSetup类。
关于appdomain - 应用程序域之间的独立工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744106/