void Update(Guid pluginId, FinalResult r)
 {
     if (r.UpdatePlugin(pluginId, _runnerDisabled, _runner.ConfigManager.SolvedPluginConfiguration, _layers, _runner.Discoverer))
     {
         UpdateCheckDirty(r);
     }
 }
 /// <summary>
 /// Initialize the internal count of differences and set RunningConfiguration.IsDirty accordingly.
 /// </summary>
 internal void Initialize()
 {
     Debug.Assert(_nbFinalDifferFromRunning == 0);
     foreach (var c in _runner.ConfigManager.SolvedPluginConfiguration)
     {
         FinalResult r = new FinalResult();
         _final.Add(c.PluginId, r);
         Debug.Assert(r.FinalStatus == r.RunningStatus, "At creation time, they both are Optional.");
         if (r.UpdatePlugin(c.PluginId, _runnerDisabled, _runner.ConfigManager.SolvedPluginConfiguration, _layers, _runner.Discoverer))
         {
             Debug.Assert(r.FinalStatus != r.RunningStatus, "If FinalStatus changed, then it necessarily differs from RunningStatus.");
             ++_nbFinalDifferFromRunning;
         }
     }
     _runner.SetDirty(_nbFinalDifferFromRunning > 0);
 }