Perf计数器不使用ServiceInstall安装服务

时间:2011-02-24 18:40:03

标签: wix wix3 performancecounter serviceinstall

我有一个具有一些性能计数器的NT服务。当我使用installutil部署服务时,perf计数器和服务安装正常。当我使用我的使用ServiceInstall的msi进行部署时,服务会显示,但不会安装perf计数器。

我总是假设ServiceInstall运行了installutil。是否存在一些阻碍我安装perf计数器的重要区别?

Wix细分

<ServiceInstall Id='ServiceInstall' ErrorControl='ignore' Type='ownProcess' DisplayName='Service' Description='service' Name='Service' Start='auto' Account='[SERVICEACCOUNT]' Password='[SERVICEACCOUNTPASSWORD]' /> 
<ServiceControl Id='Service' Remove='uninstall' Name='Service' Start='install' Stop='both' Wait='yes' />

Perf counter install

[RunInstallerAttribute(true)]
[RegistryPermissionAttribute(SecurityAction.LinkDemand, Unrestricted = true)]
[EnvironmentPermissionAttribute(SecurityAction.InheritanceDemand, Unrestricted = true)]
public sealed class CountersInstaller : Installer
{
    public CountersInstaller()
    {
        Installers.AddRange(Counters.Instance.PerformanceCounterInstallers());
    }
}

1 个答案:

答案 0 :(得分:0)

不,你的假设不正确。 ServiceInstall不会调用InstallUtil来安装性能计数器。使用InstallUtil通常被视为一种不好的做法。

相反,请查看PerformanceCategoryPerformanceCounter元素。当然,这需要一些编码来将您现在使用C#转换为声明性XML形式。