不是从应用程序路径启动进程



我有一个控制台应用程序,必须从代码中启动。此应用程序的配置文件位于同一文件夹中。如果我手动启动控制台应用程序,它会找到配置文件,一切都很好。但当我在代码中作为进程启动它时,它会尝试在应用程序的文件夹中查找配置,所以我需要将它复制到Debug/Release文件夹中。我是否可以避免这种行为,因为我希望此控制台应用程序作为一个模块独立定位?

您需要定义流程的WorkingDirectory。查看ProcessStartInfo.WorkingDirectory了解更多信息。

在您的情况下,您可能希望将UseShellExecute设置为false,并将工作目录设置为可执行文件的位置。

您可以从执行程序集中加载文件。Assembly.GetExecutingAssembly().Location将为您提供执行此代码的ddl的当前位置。

var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);

最新更新