.net – 无法加载Exchange powershell管理单元:“Microsoft.Exchange.Data.Directory.Globals”的类型初始化程序抛出异常

我有以下代码创建一个Power Shell运行空间,并加载了Exchange 2010快照.
Dim runspaceConfig = RunspaceConfiguration.Create()

Dim snapInException As PSSnapInException = nothing
runspaceConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010",snapInException)

Dim runspace = RunspaceFactory.CreateRunspace(runspaceConfig)
runspace.open()

自从安装Visual Studio 2012以来,在执行将管理单元添加到runspace配置中的行时,我开始收到以下错误.

System.Management.Automation.Runspaces.PSSnapInException occurred
  HResult=-2146233087
  Message=Cannot load Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.E2010 because of the following error: The type initializer for 'Microsoft.Exchange.Data.Directory.Globals' threw an exception.
  Source=System.Management.Automation
  WasThrownFromThrowStatement=False
  StackTrace:
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadCustomPSSnapIn(PSSnapInInfo mshsnapinInfo)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo,PSSnapInException& warning)
       at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.DoAddPSSnapIn(String name,PSSnapInException& warning)
       at System.Management.Automation.Runspaces.RunspaceConfiguration.AddPSSnapIn(String name,PSSnapInException& warning)

我已经能够确认nlog是不知何故导致这个问题.在创建powershell runspace之前创建一个nlog记录器的组合会导致错误.

如果我从我的应用程序配置中删除nlog配置部分,只需创建一个空的nlog记录器,那么加载中没有错误.另外,如果我在应用程序配置中留下了nlog配置,但是不创建一个nlog记录器,那么管理单元也被成功加载.

>我已经尝试在x64和x86中构建项目.
>我已经重新安装了交换管理工具.
>我已经尝试在交换环境中的另一台机器上进行测试.

如果有人可以提供任何可能帮助我解决这个问题的建议,我将会很有意思.

谢谢

经过进一步调查,我发现.NET 4.5是一个更新的含义,.NET 4.0被安装后被覆盖并替换为.NET 4.5.我不知道.NET 4.5中发生什么变化,导致这一点,但问题是通过卸载.NET 4.5并切换回Visual Studio 2010.解决问题.希望微软在不久的将来会有一些更新,将解决问题,并允许我再次使用Visual Studio 2012.

有关更新的更多信息,请参阅以下文章.
http://www.devproconnections.com/article/net-framework/net-framework-45-versioning-faces-problems-141160

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...