Пример #1
0
        static void Run(string[] args)
        {
            var needAdmin = Convert.ToInt32(args[1]) == 1;

            switch (args[3])
            {
            case "vaultapp":
                var appFolder = args[5];
                var files     = args.SkipWhile((c, i) => i < 7).ToArray();
                try
                {
                    var errList = VaultAppUtils.ExtractApps(appFolder, files, Logger.Log);
                    Logger.Log.Error("加载App失败:" + String.Join("\r\n", errList));
                    Trace.WriteLine("加载App成功:");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine("加载App失败:" + ex.Message);
                }
                break;

            case "revitplugin":
                var baseFolder = args[5];
                var dict       = AddinPathUtils.GetAddinDict(baseFolder);
                foreach (var d in dict)
                {
                    foreach (var f in d.Value)
                    {
                        AddinPathUtils.InstallPlugin(d.Key, f, needAdmin);
                    }
                }
                break;
            }
        }
Пример #2
0
 private void LoadRevitApps()
 {
     try
     {
         var location = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
         if (location != null)
         {
             var basePath = Path.Combine(location, "RevitPlugin");
             Log.Info(string.Format("basePath={0}", basePath));
             var pluginDict = AddinPathUtils.GetAddinDict(basePath);
             Log.Info(string.Format("pluginDict={0}", pluginDict));
             var needInstallDict = new Dictionary <string, string[]>();
             foreach (var p in pluginDict)
             {
                 var version = p.Key;
                 AddinPathUtils.RemovePluginsInSpecificFolder(version, false, location);
                 var revitInstalled = RevitInstallInfoUtils.CanbeInstalled(version);
                 if (!revitInstalled)
                 {
                     continue;
                 }
                 var needInstallPaths = new List <string>();
                 foreach (var d in p.Value)
                 {
                     var installed = AddinPathUtils.PluginInstalledOrNoNeed(version, d, false);
                     if (!installed)
                     {
                         needInstallPaths.Add(d);
                     }
                 }
                 needInstallDict.Add(version, needInstallPaths.ToArray());
             }
             foreach (var d in needInstallDict)
             {
                 foreach (var p in d.Value)
                 {
                     try
                     {
                         var err = AddinPathUtils.InstallPlugin(d.Key, p, false);
                         if (!String.IsNullOrEmpty(err))
                         {
                             Log.Warn(err);
                         }
                     }
                     catch (Exception ex)
                     {
                         Log.Error("Loading Revit plugin failed 1. Exception: " + ex.Message, ex);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Log.Error("Loading Revit plugin failed 2. Exception: " + ex.Message, ex);
     }
 }