Application.StartupPath 在GAC 中调用了一个DLL,它将解析到哪里?

Application.StartupPath called in a DLL in GAC, where it will resolved to?

我创建了一个 EXE(我们称之为 a.exe),它调用一个 DLL(我们称之为 b.dll)。 b.dll里面有这个方法

public string GetStartupPath()
{
  return Application.StartupPath;
}

我将 a.exe 放在 C:\Program Files\My Company\My App 文件夹中。我在 GAC 中安装 b.dll

现在我的问题是,如果我启动 C:\Program Files\My Company\My App\a.exeb.dll return 中的方法 GetStartupPath() 会怎样?

我可以做一个简单的例子来测试,但我还是决定post这道题。两个原因:

  1. 我怀疑在不同的机器上,会有不同的答案return。
  2. 为了其他开发人员的利益,基于 Whosebug 上可用的官方文档的规范响应非常有用。

来自官方文档:

Gets the path for the executable file that started the application, not including the executable name.

https://msdn.microsoft.com/en-us/library/system.windows.forms.application.startuppath(v=vs.110).aspx

所以这对我来说意味着它将为您提供 exe 所在的路径。