我为第三方应用程序编写扩展。该应用程序调用我的类库。当从另一个程序调用时,我无法让我的程序集从他们的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是否停止工作?
答案 0 :(得分:0)
应用设置必须位于最高级别的组件中(在这种情况下,您的MSTEST app.config需要保留设置。