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 に答える