Exemple #1
0
		internal void Load (TaskDatabase db)
		{
			AssemblyLoadInfo loadInfo = null;

			if (AssemblyName != null) {
				loadInfo = new AssemblyLoadInfo (AssemblyName, TaskName);
			} else if (AssemblyFile != null) {
				Expression exp = new Expression ();
				// FIXME: test it
				exp.Parse (AssemblyFile, ParseOptions.Split);
				string filename = (string) exp.ConvertTo (project, typeof (string));

				if (Path.IsPathRooted (filename) == false) {
					string ffn;
					if (importedProject != null) {
						ffn = Path.GetDirectoryName (importedProject.FullFileName);
					} else if (project.FullFileName != String.Empty) {
						ffn = Path.GetDirectoryName (project.FullFileName);
					} else {
						ffn = Environment.CurrentDirectory;
					}
					filename = Path.Combine (ffn, filename);
				}
				loadInfo = new AssemblyLoadInfo (LoadInfoType.AssemblyFilename, filename, null, null, null, null, TaskName);
			}

			db.RegisterTask (TaskName, loadInfo);
		}
Exemple #2
0
        internal TaskDatabase GetDefaultTasks(string toolsVersion)
        {
            TaskDatabase db;

            if (defaultTasksTableByToolsVersion.TryGetValue(toolsVersion, out db))
            {
                return(db);
            }

            var toolset = Toolsets [toolsVersion];

            if (toolset == null)
            {
                throw new UnknownToolsVersionException(toolsVersion);
            }

            string toolsPath = toolset.ToolsPath;
            string tasksFile = Path.Combine(toolsPath, defaultTasksProjectName);

            this.LogMessage(MessageImportance.Low, "Loading default tasks for ToolsVersion: {0} from {1}", toolsVersion, tasksFile);

            // set a empty taskdb here, because the project loading the tasks
            // file will try to get the default task db
            defaultTasksTableByToolsVersion [toolsVersion] = new TaskDatabase();

            db = defaultTasksTableByToolsVersion [toolsVersion] = RegisterDefaultTasks(tasksFile);

            return(db);
        }
Exemple #3
0
        TaskDatabase RegisterDefaultTasks(string tasksFile)
        {
            Project      defaultTasksProject = CreateNewProject();
            TaskDatabase db;

            if (File.Exists(tasksFile))
            {
                defaultTasksProject.Load(tasksFile);
                db = defaultTasksProject.TaskDatabase;
            }
            else
            {
                this.LogWarning("Default tasks file {0} not found, ignoring.", tasksFile);
                db = new TaskDatabase();
            }

            return(db);
        }
Exemple #4
0
 public void CopyTasks(TaskDatabase taskDatabase)
 {
     foreach (KeyValuePair <string, AssemblyLoadInfo> kvp in taskDatabase.assemblyInformation)
     {
         assemblyInformation.Add(kvp.Key, kvp.Value);
     }
     foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByFullName)
     {
         typesByFullName.Add(kvp.Key, kvp.Value);
     }
     foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByShortName)
     {
         typesByShortName.Add(kvp.Key, kvp.Value);
     }
     foreach (KeyValuePair <string, UsingTaskInfo> kvp in taskDatabase.usingTasksByFullName)
     {
         usingTasksByFullName.Add(kvp.Key, kvp.Value);
     }
 }
Exemple #5
0
        internal void Load(TaskDatabase db)
        {
            AssemblyLoadInfo loadInfo = null;

            if (AssemblyName != null)
            {
                loadInfo = new AssemblyLoadInfo(AssemblyName, TaskName);
            }
            else if (AssemblyFile != null)
            {
                Expression exp = new Expression();
                // FIXME: test it
                exp.Parse(AssemblyFile, ParseOptions.Split);
                string filename = (string)exp.ConvertTo(project, typeof(string));

                if (Path.IsPathRooted(filename) == false)
                {
                    string ffn;
                    if (importedProject != null)
                    {
                        ffn = Path.GetDirectoryName(importedProject.FullFileName);
                    }
                    else if (project.FullFileName != String.Empty)
                    {
                        ffn = Path.GetDirectoryName(project.FullFileName);
                    }
                    else
                    {
                        ffn = Environment.CurrentDirectory;
                    }
                    filename = Path.Combine(ffn, filename);
                }
                loadInfo = new AssemblyLoadInfo(LoadInfoType.AssemblyFilename, filename, null, null, null, null, TaskName);
            }

            db.RegisterTask(TaskName, loadInfo);
        }
Exemple #6
0
        TaskDatabase RegisterDefaultTasks(string tasksFile)
        {
            Project defaultTasksProject = CreateNewProject ();
            TaskDatabase db;

            if (File.Exists (tasksFile)) {
                defaultTasksProject.Load (tasksFile);
                db = defaultTasksProject.TaskDatabase;
            } else {
                // $Jedzia$: search for alternative tasks file in the BinPath.
                var fi = new FileInfo(tasksFile);
                var altPath = Path.Combine(this.BinPath, fi.Name);
                if (File.Exists(altPath))
                {
                    defaultTasksProject.Load(altPath);
                    db = defaultTasksProject.TaskDatabase;
                    this.LogMessage(MessageImportance.Low, String.Format("{0}: Found alternative defaultTasksProject '{1}'.", "RegisterDefaultTasks", altPath));
                }
                else
                {
                    this.LogWarning("Default tasks file {0} not found, ignoring.", tasksFile);
                    db = new TaskDatabase();
                }
            }

            return db;
        }
Exemple #7
0
        internal TaskDatabase GetDefaultTasks(string toolsVersion)
        {
            TaskDatabase db;
            if (defaultTasksTableByToolsVersion.TryGetValue (toolsVersion, out db))
                return db;

            var toolset = Toolsets [toolsVersion];
            if (toolset == null)
                throw new UnknownToolsVersionException (toolsVersion);

            string toolsPath = toolset.ToolsPath;
            string tasksFile = Path.Combine (toolsPath, defaultTasksProjectName);
            this.LogMessage (MessageImportance.Low, "Loading default tasks for ToolsVersion: {0} from {1}", toolsVersion, tasksFile);

            // set a empty taskdb here, because the project loading the tasks
            // file will try to get the default task db
            defaultTasksTableByToolsVersion [toolsVersion] = new TaskDatabase ();

            db = defaultTasksTableByToolsVersion [toolsVersion] = RegisterDefaultTasks (tasksFile);

            return db;
        }
Exemple #8
0
		TaskDatabase RegisterDefaultTasks (string tasksFile)
		{
			Project defaultTasksProject = CreateNewProject ();
			TaskDatabase db;
			
			if (File.Exists (tasksFile)) {
				defaultTasksProject.Load (tasksFile);
				db = defaultTasksProject.TaskDatabase;
			} else {
				this.LogWarning ("Default tasks file {0} not found, ignoring.", tasksFile);
				db = new TaskDatabase ();
			}

			return db;
		}
Exemple #9
0
		public void CopyTasks (TaskDatabase taskDatabase)
		{
			foreach (KeyValuePair <string, AssemblyLoadInfo> kvp in taskDatabase.assemblyInformation)
				assemblyInformation.Add (kvp.Key, kvp.Value);
			foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByFullName)
				typesByFullName.Add (kvp.Key, kvp.Value);
			foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByShortName)
				typesByShortName.Add (kvp.Key, kvp.Value);
			foreach (KeyValuePair <string, UsingTaskInfo> kvp in taskDatabase.usingTasksByFullName)
				usingTasksByFullName.Add (kvp.Key, kvp.Value);
		}
		void RegisterDefaultTasks ()
		{
			this.defaultTasksRegistered = false;
			
			Project defaultTasksProject = CreateNewProject ();
			
			if (binPath != null) {
				if (File.Exists (Path.Combine (binPath, defaultTasksProjectName))) {
					defaultTasksProject.Load (Path.Combine (binPath, defaultTasksProjectName));
					defaultTasks = defaultTasksProject.TaskDatabase;
				} else
					defaultTasks = new TaskDatabase ();
			} else
				defaultTasks = new TaskDatabase ();
			
			this.defaultTasksRegistered = true;
		}