2010-09-09 2 views
0

Задача Wmi является частью MSBuild Extension Pack. На одной из наших машин разработки она не выбрала ManagementException. Вот цель:Что может заставить задачу MSBuild для Wmi настраивать «ManagementException not found»?

<Target Name="Clean"> 
    <ItemGroup> 
     <WmiProps Include="State"/> 
     <WmiProps Include="DisplayName"/> 
    </ItemGroup> 

    <!-- Create list of services that are currently running. --> 
    <Wmi TaskAction="Query" Class="Win32_Service WHERE DisplayName LIKE '%ServiceName%'" Properties="@(WmiProps)" Namespace="\root\CIMV2" MachineName="$(LocalDbServer)"> 
     <Output TaskParameter="Info" ItemName="Info"/> 
    </Wmi> 

    <Wmi TaskAction="Execute" Class="Win32_Service" Method="StopService" Instance="Name='%(Info.DisplayName)'" Namespace="\root\CIMV2"> 
     <Output TaskParameter="ReturnValue" PropertyName="Rval1"/> 
    </Wmi> 
</Target> 

Вторая задача WMI - это то, что выдает исключение.

ответ

2

Ошибка довольно проста (класс не найден). Я считаю, что это происходит, потому что вы пытаетесь запросить сервис по его отображаемому имени, а не по имени. Переключение второй задачи должно быть

Instance="Name='%(Info.Name)'" 

Возможно, это трюк.

Надеюсь, что это поможет,

+0

Я попробую. –

+0

Спасибо! Способ, которым наши услуги были выполнены ранее, отображаемое имя и имя были одинаковыми (предыдущая цель работала в соответствии с этим предположением). Это, похоже, недавно изменилось, что нарушило цель. Добавление имени в WmiProps и обновление атрибута к тому, что у вас в вашем ответе, все исправлено. –