fsprojects / FSharp.Management

The FSharp.Management project contains various type providers for the management of the machine.
http://fsprojects.github.io/FSharp.Management/
Other
91 stars 32 forks source link

WMI provider: exception when instantiating Msvm_VirtualSystemManagementService #46

Open blumu opened 9 years ago

blumu commented 9 years ago

The WMI Type provider fails with an exception when trying to instantiate the HyperV WMI class Msvm_VirtualSystemManagementService.

Repro script Install nuget package with

Install-Package FSharp.Management

Run the following under F# interactive (Note: it also reproes with a compiled .fs file).

#r @"System.Management.dll"
#r @"System.Management.WMI.dll"
open System.Management
open FSharp.Management
type Local = WmiProvider<"localhost", @"root\virtualization\v2">
let local = Local.GetDataContext()
let hyperv = local.Msvm_VirtualSystemManagementService

Result

C:\Users\wiblum\AppData\Local\Temp\stdin(4,1): error FS3021: Unexpected exception from provided type 'FSharp.Management.WmiProvider,MachineName="localhost",Namespace="root\\virtualization\\v2"+ServiceTypes+Msvm_VirtualSystemManagementService' member 'GetMethods': The type provider 'FSharp.Management.DesignTime.WmiExtender' reported an error: Not found 

Source The exception is thrown by the failwith at line 73 of file WmiProvider.DesignTime.fs

| CimType.Reference when tyName.StartsWith("ref:") ->
            if wmiProp.IsArray then
                failwith (sprintf "Unexpected type: %A array" wmiProp.Qualifiers.["cim_type"].Value)

Note Bug imported from https://github.com/fsprojects/fsharpx/issues/269 also filed in F# Sample pack project at https://fsharp3sample.codeplex.com/workitem/2934.

dsyme commented 9 years ago

@blumu - Any idea if there is a simple fix for this? DO we need better diagnostics here?