Exchange 2010 スナップが読み込まれた状態で PowerShell 実行空間を作成する次のコードがあります。
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 をインストールしてから、スナップインを実行空間構成に追加する行を実行すると、次のエラーが発生し始めました。
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 実行空間を作成する前に nlog ロガーを作成すると、エラーが発生します。
アプリ構成から nlog 構成セクションを削除し、空の nlog ロガーを作成すると、スナップインはエラーなしで読み込まれます。また、nlog 構成をアプリ構成に残したまま、nlog ロガーを作成しない場合、スナップインも正常に読み込まれます。
- x64 と x86 の両方でプロジェクトをビルドしようとしました。
- 交換管理ツールを再インストールしました。
- 交換環境の別のマシンでテストを試みました。
この問題を解決するのに役立つ提案を誰かが提供できれば、私はとても助かります。
ありがとうございました