1

在我的项目 \debug 目录中,我有程序 exe 文件,例如:

测试程序

现在,一旦我将从 c:\ 运行这个 test.exe,第二次我会将 test.exe 复制到 d:\ 并从那里运行它。

在我的代码中,我有这一行:

string programFilesX86 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86) + "\\Diagnostic Tool\\7z.dll";

相反,程序文件 x86 我如何从运行 exe 文件的位置获取每个目录?

4

2 回答 2

1

一种方法(在 .Net CE 中也可以肯定的方式)是

string path = Path.GetDirectoryName(
  Assembly.GetEntryAssembly().GetModules()[0].FullyQualifiedName);

或者

string path = Path.GetDirectoryName(
  Assembly.GetEntryAssembly().Location);

这将阻止 Shortcut 设置应用程序 CurrentDirectory 或 StartupPath,这些应用程序在技术上可能与其执行路径不同(例如 ClickOne 程序)。

于 2013-08-05T00:46:00.190 回答
0

您可以通过执行以下操作获取运行目录:

Application.StartupPath

你可以在这里阅读更多关于它的信息

或者,您可以尝试Environment.CurrentDirectory,但由于捷径和其他获取文件的方式,这可能不会产生您想要的结果。

http://msdn.microsoft.com/en-us/library/system.environment.currentdirectory.aspx

你也可以这样做:

System.IO.Path.GetDirectoryName(Application.ExecutablePath);

或者

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
于 2013-08-05T00:43:36.117 回答