かなりのGoogle-fuの後にこれを理解しました。
私が採用した最終的な解決策は次のとおりです。Service アプリケーションに設定 (app.config ファイルを生成) を作成しました。次に、コード ライブラリ プロジェクトとコンソール アプリケーション プロジェクトの両方でこれらの設定へのリンクを作成しました (これは、[追加] > [既存の項目] に移動し、[追加] ボタンの横にあるドロップダウン矢印をクリックして、[リンクとして追加] を選択することによって行われます)。 Code Library プロジェクトのものは必要ありません。
これにより、開発中は設定構成が 1 つだけになり、開発プロセス中にコンソール アプリケーションとコード ライブラリの両方からアクセスできるコンソール アプリケーション用の構成ファイルが生成されます。
最後に、以下のコードを使用して構成ファイルを開き、値にアクセスしました。免責事項として、これを行う簡単な方法があるかもしれませんが、約100の組み合わせを試しましたが、他には何も機能しませんでした:
String cfgFileName = "IntercompanyConsoleApp.exe.config";
ExeConfigurationFileMap cfgMap = new ExeConfigurationFileMap();
cfgMap.ExeConfigFilename = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + cfgFileName;
Configuration cfg = ConfigurationManager.OpenMappedExeConfiguration(cfgMap, ConfigurationUserLevel.None);
// IntercompanyService is the name of my service app, which is where the real app.config file resides -- hence the entries in the xml are based on this application.
// Also, the scope of my settings entries is Application
ClientSettingsSection section = (ClientSettingsSection)cfg.GetSection("applicationSettings/IntercompanyService.Properties.Settings");
Console.WriteLine(section.Settings.Get("Server").Value.ValueXml.InnerText);
Console.WriteLine(section.Settings.Get("Database").Value.ValueXml.InnerText);
これはあいまいな問題ですが、これを理解するのに約 4 時間費やしたので、将来誰かの時間を節約できることを願っています。