为什么LINQPad.exe需要调用LINQPad.exe才能运行?

时间:2013-02-15 16:13:48

标签: .net process linqpad

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

为了帮助我整理设置,我想我会制作一些LINQPad.exe副本,用相应的配置文件重命名,如下所示:

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

但LINQPad.exe在启动时抱怨:

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

为什么会这样?

PS显然我不是在问如何管理我的配置文件(我现在有不同的文件夹) - 我对可以强制执行进程名称的编程原因感到好奇吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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");
}

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