C# 获取包含a.cs的项目的完整路径

C# 获取包含a.cs的项目的完整路径,c#,C#,我在VisualStudio中有两个C#项目Proj1和Proj2,在一个解决方案下。 Proj2在Proj1中使用a.cs中的方法meth1 在meth1中 public string meth1(){ return Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName; } 当我从Proj2调用方法时,它返回Proj2的完整路径。有没有一种方法可以让它获取Proj1的路径,而不管方法在哪里调用?您可以在这里

我在VisualStudio中有两个C#项目
Proj1
Proj2
,在一个解决方案下。
Proj2
Proj1
中使用
a.cs
中的方法
meth1

meth1

public string meth1(){
return Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
}

当我从
Proj2
调用方法时,它返回
Proj2
的完整路径。有没有一种方法可以让它获取
Proj1
的路径,而不管方法在哪里调用?

您可以在这里找到Proj1.dll的位置:
System.Reflection.Assembly.GetAssembly(typeof(Class1)).location
,其中
Class1
是定义
meth1
的类型。它可以在Proj1.dll程序集之外的形式调用


如果您在Proj1.dll中,则可以使用:
Assembly.getExecutionGassembly().Location
您可以在这里找到Proj1.dll的位置:
系统.反射.汇编.GetAssembly(typeof(Class1)).location
,其中
Class1
是定义
meth1
的类型。它可以在Proj1.dll程序集之外的形式调用


如果您在Proj1.dll中,则可以使用:
Assembly.getExecutionGassembly().Location

编译代码后,它将完全独立于项目和解决方案。您需要项目目录的路径有什么特殊原因吗?一旦部署应用程序,就不会有任何源代码。您只能在您的机器上执行此操作,因此只需对路径进行硬编码就足够了。或者,您可以解析sln文件,但这在客户端计算机上同样不起作用。如果根据您的需要合适,您也可以将此路径添加为
Proj2
中的设置。这样,如果将来需要更改应用程序,就不必重新编译它。一旦编译了代码,它就完全独立于项目和解决方案。您需要项目目录的路径有什么特殊原因吗?一旦部署应用程序,就不会有任何源代码。您只能在您的机器上执行此操作,因此只需对路径进行硬编码就足够了。或者,您可以解析sln文件,但这在客户端计算机上同样不起作用。如果根据您的需要合适,您也可以将此路径添加为
Proj2
中的设置。这样,如果将来需要更改应用程序,就不必重新编译它。