C# 获取项目路径

C# 获取项目路径,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个只有几个项目的解决方案 解决方案1已经完成 项目1(MVC项目), Pro2(类库),以及 Pro3(类库) 因此,我使用Pro 3作为报告部分,并使用hkHtmlToPDF将htmls导出为pdf。有一个名为hkHtmlToPdf.exe的exe用于执行我的任务。 但我没有什么问题。执行代码需要exe路径。我想获得Pro3物理路径,并使用下面的代码来获得路径 var myPath = System.AppDomain.CurrentDomain.BaseDirectory; 上面的代

我有一个只有几个项目的解决方案

解决方案1已经完成

项目1(MVC项目), Pro2(类库),以及 Pro3(类库)

因此,我使用Pro 3作为报告部分,并使用hkHtmlToPDF将htmls导出为pdf。有一个名为hkHtmlToPdf.exe的exe用于执行我的任务。 但我没有什么问题。执行代码需要exe路径。我想获得Pro3物理路径,并使用下面的代码来获得路径

var myPath = System.AppDomain.CurrentDomain.BaseDirectory;

上面的代码返回web项目路径。实际上我需要Pro3路径。如何获取它?

您知道exe文件的名称

string pattern = "hkHtmlToPdf.exe";
string dirPath = AppDomain.CurrentDomain.BaseDirectory;
Directory.GetFiles(dirPath , pattern, SearchOption.AllDirectories);
编辑:
一切都很好!创建2个控制台应用程序,如下所示:

static void Main(string[] args)
{
    Console.WriteLine("This exe is runned from another exe.");
    Console.ReadKey();
}
static void Main(string[] args)
{
    string pattern = "ConsoleApplication1.exe";
    string dirPath = AppDomain.CurrentDomain.BaseDirectory;
    var files = Directory.GetFiles(dirPath, pattern, SearchOption.AllDirectories);
    if (files.Length > 0) Process.Start(files[0]);
    else Debug.WriteLine("File not found");
    Console.ReadKey();
}

将它们放在一个文件夹中,运行App2。它将找到App1并运行。即使App1将在子文件夹中

您可以在web.config中添加路径作为配置参数,而不是搜索

为什么这是问题的负号?我搜索了1,2个小时。如何获取字符串形式的路径?我将var对象分配给Directory.GetFiles(dirPath、pattern、SearchOption.AllDirectories)。它不起作用。发生对象引用错误。无法执行此操作,因为我将隔离此类库,然后它可以使用任何visual studio解决方案。如果我将路径添加到web.config,那么它与MVCWeb项目具有依赖关系。