Esempio n. 1
0
        public HotSwap()
        {
            Directory.CreateDirectory(modDirectory);

            Logger.LogLine("Watching directory " + modDirectory + " for changes," +
                           "press esc to exit");

            IPluginWatcher <IHotSwapInvoke> watcher = new PluginWatcher <IHotSwapInvoke>(modDirectory);

            watcher.PluginsChanged += Watcher_PluginsChanged;

            lock (VersionLock)
            {
                try
                {
                    current = Latest(watcher.CurrentlyAvailable);

                    Logger.LogLine("\r\nInitial startup\r\nLatest version:");
                    Logger.LogLine(current.Version().ToString());

                    // Here we set some state that should be maintained between versions
                    current.OnHotSwapInvoke();
                }
                catch (Exception ex)
                {
                    Logger.LogLine(ex.Message);
                }
            }
        }
Esempio n. 2
0
 static void Upgrade(IHotSwap old, IHotSwapInvoke latest)
 {
     lock (VersionLock)
     {
         try
         {
             latest.SetState(old.GetState());
             current = latest;
         }
         catch (Exception ex)
         {
             Logger.LogLine("Can't upgrade: " + ex.Message);
         }
     }
 }