public UnityRiderAlternateProjectOutputProvider(Lifetime lifetime, UnityEditorProtocol editorProtocol, IShellLocks shellLocks) : base(lifetime)
        {
            myShellLocks = shellLocks;

            myProjectNameToOutputFilePathMap = new ConcurrentDictionary <string, FileSystemPath>();

            editorProtocol.UnityModel.ViewNotNull(lifetime, (modelLifetime, model) =>
            {
                model.CompiledAssemblies.AdviseNotNull(modelLifetime, compiledAssemblies =>
                {
                    myProjectNameToOutputFilePathMap = compiledAssemblies.ToDictionary(a => a.Name, a => FileSystemPath.TryParse(a.OutputPath));
                    PathsChanged.Fire();
                });
            });
        }
 protected virtual void OnPathsChanged(IList <PathChangeEntry> changes)
 {
     PathsChanged?.Invoke(changes);
 }