0

サード パーティ アプリケーションの拡張機能を作成します。アプリケーションがクラス ライブラリを呼び出します。別のプログラムから呼び出されたときに、アセンブリが app.config データから読み取ることができません。以下は、単体テストで問題を再現します。

ConsoleApplication.exe の App.config

<appSettings>
    <add key="testKey" value="testvalue" />
</appSettings>

    static void Main(string[] args)
    {
        TestClass c = new TestClass();
        c.Run();
    }

    //TestClass.Run()
    public void Run()
    {
        var readAppConfig = ConfigurationManager.AppSettings[0];
        MessageBox.Show("App config: " + readAppConfig);
    }

単体テスト コード、MSTEST

    [TestMethod]
    public void TestAppConfig()
    {
        TestClass c = new TestClass();
        c.Run();//fails here
    }

Main() は機能しますが、TestAppConfig() は ArgumentOutOfRangeException で失敗します

インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。

外部アセンブリから呼び出されると、App.config は機能しなくなりますか?

4

1 に答える 1

0

アプリの設定は最上位のコンポーネントにある必要があります (この場合、MSTEST app.config は設定を保持する必要があります。

于 2012-06-15T14:58:56.053 に答える