/// <summary>Called when an MSI feature has been detected for a package.</summary> /// <param name="args">The arguments of the event.</param> protected override void OnDetectMsiFeature(Wix.DetectMsiFeatureEventArgs args) { LogVerbose("Enter Method: OnDetectMsiFeature"); WPFBootstrapperEventArgs <Wix.DetectMsiFeatureEventArgs> cancelArgs = new WPFBootstrapperEventArgs <Wix.DetectMsiFeatureEventArgs>(args); TryInvoke(new Action(() => { _mainWindow.OnDetectMsiFeature(cancelArgs); })); if (!cancelArgs.Cancel) { base.OnDetectMsiFeature(cancelArgs.Arguments); } LogVerbose("Leaving Method: OnDetectMsiFeature"); }
/// <summary>Called when an MSI feature has been detected for a package.</summary> /// <param name="args">The arguments of the event.</param> protected override void OnDetectMsiFeature(Wix.DetectMsiFeatureEventArgs args) { this.LogBootstrapperEnterEvent(args, "DetectMsiFeature"); WPFBootstrapperEventArgs <Wix.DetectMsiFeatureEventArgs> cancelArgs = new WPFBootstrapperEventArgs <Wix.DetectMsiFeatureEventArgs>(args); this.TryInvoke(new Action(() => { this.model.OnDetectMsiFeature(cancelArgs); })); if (!cancelArgs.Cancel) { base.OnDetectMsiFeature(cancelArgs.Arguments); } this.LogBootstrapperLeaveEvent(null, "DetectMsiFeature"); }
/// <summary> /// when engine detects a feature, populate the appropriate local objects, /// including current installed state of the package on the system /// </summary> private void SetFeatureDetectedState(Wix.DetectMsiFeatureEventArgs args) { var package = this.BundlePackages.FirstOrDefault(pkg => pkg.Package == args.PackageId); if (package != null) { var feature = package.AllFeatures.FirstOrDefault(feat => feat.Feature == args.FeatureId); if (feature != null) { Wix.FeatureState currentState = args.State; feature.CurrentInstallState = args.State; } } }
/// <summary> /// Called when an MSI feature has been detected for a package. /// </summary> /// <param name="args">Additional arguments for this event.</param> protected virtual void OnDetectMsiFeature(DetectMsiFeatureEventArgs args) { EventHandler<DetectMsiFeatureEventArgs> handler = this.DetectMsiFeature; if (null != handler) { handler(this, args); } }
Result IBootstrapperApplication.OnDetectMsiFeature(string wzPackageId, string wzFeatureId, FeatureState state) { DetectMsiFeatureEventArgs args = new DetectMsiFeatureEventArgs(wzPackageId, wzFeatureId, state); this.OnDetectMsiFeature(args); return args.Result; }