此代码:
[TestMethod]
public void WmiTest() {
using (var searcher = new ManagementObjectSearcher("SELECT * FROM CIM_OperatingSystem")) {
// ...
}
}
结果: System.AppDomainUnloadedException:尝试访问已卸载的AppDomain。如果测试开始一个线程但没有停止它,就会发生这种情况。确保测试启动的所有线程在完成之前停止。
来自MSTest的。
我知道这通常是由于没有处理的对象或线程仍然在运行但是在这里停止/释放的是什么?
修改
上述实例与:
相同var scope = new ManagementScope();
var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM CIM_OperatingSystem");
触发 System.AppDomainUnloadedException 的所有必要条件是:
[TestMethod]
public void WmiTest() {
var scope = new ManagementScope();
}