C# 获取包含a.cs的项目的完整路径
我在VisualStudio中有两个C#项目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的路径,而不管方法在哪里调用?您可以在这里
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
中的设置。这样,如果将来需要更改应用程序,就不必重新编译它。