我认为这是相当简单的但是我在使用PatchInstallation类时遇到了问题,该类是Microsoft.Deployment.WindowsInstaller的一部分。
获得了正确的补丁代码和产品代码(targetcode)后,我只是调用了IsInstalled属性,但是抛出了ArgumentNullExceptions。
PatchInstallation patchInstallation = new PatchInstallation(patchCode.ToString("B"), productCode.ToString("B"));
return patchInstallation.IsInstalled;
例外文字是:
System.ArgumentNullException发生Message = Value不能为null。 参数名称:String Source = mscorlib ParamName = String
堆栈跟踪: at System.Number.StringToNumber(String str,NumberStyles options,NumberBuffer& number,NumberFormatInfo info,Boolean parseDecimal) 在System.Number.ParseInt32(String s,NumberStyles样式,NumberFormatInfo信息) 在Microsoft.Deployment.WindowsInstaller.PatchInstallation.get_State() 在Microsoft.Deployment.WindowsInstaller.PatchInstallation.get_IsInstalled() 的InnerException:
如果有人有任何想法我做错了请告诉我! 干杯!
答案 0 :(得分:1)
您必须先选择上下文才能获得补丁的状态。使用带有UserContexts的四参数构造函数,并选择UserManaged,UserUnmanaged或Machine之一。