我使用LINQPad连接到不同的环境,比如说“本地”和“开发”。连接设置位于LINQPad.exe的配置文件中。
为了帮助我整理设置,我想我会制作一些LINQPad.exe副本,用相应的配置文件重命名,如下所示:
但LINQPad.exe在启动时抱怨:
应用程序必须命名为LINKPad.exe才能运行。
为什么会这样?
PS显然我不是在问如何管理我的配置文件(我现在有不同的文件夹) - 我对可以强制执行进程名称的编程原因感到好奇吗?
答案 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");
}
它还按名称引用配置文件,因此它可以强制执行程序集名称以保持简单。