private DependencyAnalysisResult PerformDependencyAnalysisTestHelper ( FileWriteInfo [] filesToAnalyze, Hashtable itemsByName, string inputs, string outputs, out Hashtable changedTargetInputs, out Hashtable upToDateTargetInputs ) { List <string> filesToDelete = new List <string>(); try { // first set the disk up for (int i = 0; i < filesToAnalyze.Length; ++i) { string path = ObjectModelHelpers.CreateFileInTempProjectDirectory(filesToAnalyze[i].Path, ""); File.SetLastWriteTime(path, filesToAnalyze[i].LastWriteTime); filesToDelete.Add(path); } // now create the project string unformattedProjectXml = @" <Project ToolsVersion=`3.5` xmlns=`msbuildnamespace`> <Target Name=`Build` Inputs=`{0}` Outputs=`{1}`> </Target> </Project> "; Project p = ObjectModelHelpers.CreateInMemoryProject(String.Format(unformattedProjectXml, inputs, outputs)); // now do the dependency analysis ItemBucket itemBucket = new ItemBucket(null, null, LookupHelpers.CreateLookup(itemsByName), 0); TargetDependencyAnalyzer analyzer = new TargetDependencyAnalyzer(ObjectModelHelpers.TempProjectDir, p.Targets["Build"], p.ParentEngine.LoggingServices, (BuildEventContext)null); return(analyzer.PerformDependencyAnalysis(itemBucket, out changedTargetInputs, out upToDateTargetInputs)); } finally { // finally clean up foreach (string path in filesToDelete) { if (File.Exists(path)) { File.Delete(path); } } } }
/// <summary> /// When implemented in a class, provides metadata to the model metadata creation process. /// </summary> /// <param name="metadata">The model metadata.</param> public void OnMetadataCreated(ModelMetadata metadata) { metadata.AdditionalValues[SimpleLookupKey] = _model; metadata.AdditionalValues[MetadataConstants.ValidationMessagePropertyID] = LookupHelpers.CreateLookupDisplayProperty(_model.Property); }