2

我正在尝试执行与主 exe 位于同一目录中的工具 exe。为此,我尝试首先使用 Assembly.GetExecutingAssembly 获取进程的 exe 名称,然后使用 IO.Path.GetDirectoryName 获取目录

//1
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; 
//2
String ncpath = System.IO.Path.GetDirectoryName(exePath);

1 返回“file:///C:/Development/RC_trunk/bin/Release/ResultConfirmation.EXE”是一个URI。不完全是我需要的,但没关系。

2 返回 "file:\C:\Development\RC_trunk\bin\Release" 这似乎是一个简单的 [/]+ 到 \ 替换。

我是否为我的问题使用了错误的 API?

PS IDE是VS2008

4

3 回答 3

2

您需要使用GetExecutingAssembly.Location

System.Reflection.Assembly.GetExecutingAssembly().Location

而不是 CodeBase,然后使用 GetDirectoryName。

于 2013-11-03T20:51:05.030 回答
2

要获取应用程序目录,请尝试AppDomain.CurrentDomain.BaseDirectory.

查看获取应用程序文件夹路径的最佳方式,了解其他访问目录的方式。

于 2013-11-03T20:55:12.923 回答
1

将其用于步骤 1)

string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
于 2013-11-03T20:51:01.537 回答