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

.net 为什么需要调用LINQPad.exe才能运行LINQPad.exe?,.net,process,linqpad,.net,Process,Linqpad,我使用LINQPad连接到不同的环境,比如“本地”和“开发”。连接设置位于LINQPad.exe的配置文件中 为了帮助我组织我的设置,我想我应该制作几个LINQPad.exe的副本,用相应的配置文件重命名它们,如下所示: LINQPad.local.exe LINQPad.local.config LINQPad.development.exe LINQPad.development.config 但LINQPad.exe在启动时抱怨: 应用程序必须命名为LINKPad.exe才能运行 为什

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

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

  • LINQPad.local.exe
  • LINQPad.local.config
  • LINQPad.development.exe
  • LINQPad.development.config
但LINQPad.exe在启动时抱怨:

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

为什么会这样


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

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

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

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

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

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


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

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

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

LINQPad是由编写的。他可能会强制你这么做,这样你就不能重命名它,也不能将它重新发布为你自己的。至于具体原因是什么。他可能会回答。只要把副本放在不同的文件夹中,让你保留原来的名字……好吧,我放弃。投票结果接近是怎么回事?这是一个合理的问题——有合理的答案。这怎么不是建设性的???我应该建议LINQPad用户不要使用StackOverflow吗?好的-显然现在LINQPad与编程无关。我已指示LINQPad用户不要在StackOverflow上询问与LINQPad相关的问题:。请使用AppDomain.CurrentDomain.SetData(“APP_CONFIG_FILE”,@“C:\Shared\APP.CONFIG”);在访问任何配置值之前。您还可以使用Util类获取当前脚本路径,并从脚本文件名派生配置文件名LinqPad是由编写的。他可能会强制你这么做,这样你就不能重命名它,也不能将它重新发布为你自己的。至于具体原因是什么。他可能会回答。只要把副本放在不同的文件夹中,让你保留原来的名字……好吧,我放弃。投票结果接近是怎么回事?这是一个合理的问题——有合理的答案。这怎么不是建设性的???我应该建议LINQPad用户不要使用StackOverflow吗?好的-显然现在LINQPad与编程无关。我已指示LINQPad用户不要在StackOverflow上询问与LINQPad相关的问题:。请使用AppDomain.CurrentDomain.SetData(“APP_CONFIG_FILE”,@“C:\Shared\APP.CONFIG”);在访问任何配置值之前。您还可以使用Util类获取当前脚本路径,并从脚本文件名派生配置文件名引用重命名的exe有那么难吗?就像您限制它一样,您可以确定引用。当您重命名强名称的程序集引用时,CLR不喜欢它-请在Visual Studio中尝试。我不知道这一点。但这似乎与强命名无关。从一个小测试来看,在重命名的程序集的原始模块名中添加一个符号链接可以使其正常工作(但这不是一个解决方案;p)。我想普通程序集也会发生同样的情况。@Joe,很有趣,谢谢。引用重命名的exe有那么难吗?就像您限制它一样,您可以确定引用。当您重命名强名称的程序集引用时,CLR不喜欢它-请在Visual Studio中尝试。我不知道这一点。但这似乎与强命名无关。从一个小测试来看,在重命名的程序集的原始模块名中添加一个符号链接可以使其正常工作(但这不是一个解决方案;p)。我想正常的程序集也会发生同样的情况。@Joe,很有趣,谢谢。