Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
225 views
in Technique[技术] by (71.8m points)

c# - Get assembly executable directory

I have two applications, e.g. App1 and App2. When running normally, App1 will show its assembly executable location. But when I call App1 from App2, it returns App2's startup location.

So, how do I get App1's startup path when I call App1 from App2?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can get the directory of the currently executing assembly with this:

string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

GetExecutingAssembly() returns the currently executing assembly and Location is the full path or UNC path of that assembly.

Path.GetDirectoryName() returns the directory of a full path.


Note that the assembly's path is not the same as the startup path. The startup path is the working directory from which you started an application. And if your app does not change it's working directory, all apps started by the first app will have the same startup path.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...