1

我使用 LINQPad 连接到不同的环境,比如“本地”和“开发”。连接设置在 LINQPad.exe 的配置文件中。

为了帮助我组织设置,我想制作几个 LINQPad.exe 副本,并使用相应的配置文件重命名它们,如下所示:

  • LINQPad.local.exe
  • LINQPad.local.config
  • LINQPad.development.exe
  • LINQPad.development.config

但是 LINQPad.exe 在启动时抱怨:

应用程序必须命名为 LINKPad.exe 才能运行。

为什么是这样?

PS 很明显,我不是在问如何管理我的配置文件(我现在有不同的文件夹)——我更好奇有什么编程原因可以强制执行进程的名称?

4

2 回答 2

5

强制执行此操作的原因是您的查询依赖于 LINQPad.exe(对于 .Dump() 等方法)。因此,如果您重命名文件,CLR 将无法找到正确的程序集。

于 2013-02-16T01:40:58.917 回答
1

如果您查看 Reflector 中的源代码,您会发现它需要一个特定的名称。

if (Path.GetFileName(Assembly.GetExecutingAssembly().Location).ToLowerInvariant() != "linqpad.exe")
{
    MessageBox.Show("The application must be named LINQPad.exe in order to run.", "LINQPad");
}

它还按名称引用配置文件,因此它可能会强制执行程序集名称以保持简单。

于 2013-02-15T16:19:26.713 回答