1

我认为这会相当简单,但是我在使用 PatchInstallation 类时遇到了问题,它是 Microsoft.Deployment.WindowsInstaller 的一部分。

获得正确的补丁代码和产品代码(目标代码)后,我只是调用了 IsInstalled 属性,但正在抛出 ArgumentNullExceptions。

PatchInstallation patchInstallation = new PatchInstallation(patchCode.ToString("B"), productCode.ToString("B"));
return patchInstallation.IsInstalled;

异常文本是:

System.ArgumentNullException 发生 Message=Value 不能为空。参数名称:String Source=mscorlib ParamName=String
StackTrace: at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)在 Microsoft.Deployment.WindowsInstaller.PatchInstallation.get_State() 在 Microsoft.Deployment.WindowsInstaller.PatchInstallation.get_IsInstalled() InnerException:

如果有人对我做错了什么有任何想法,请告诉我!干杯!

4

1 回答 1

1

您必须先选择一个上下文,然后才能获得补丁的状态。使用接受 UserContexts 的四参数构造函数并选择 UserManaged、UserUnmanaged 或 Machine 之一。

于 2012-11-28T15:32:42.267 回答