public void AssembliesUpdated(IEnumerable <Exports.IAssembly> assemblyPaths) { var items = new List <ITaskItem>(); var excludedAssemblies = ExcludeAssemblies != null?ExcludeAssemblies.Select(x => x.ItemSpec).ToList() : new List <string>(0); var assemblies = assemblyPaths.Distinct(new PathComparer()).ToList(); foreach (var assemblyRef in assemblies) { if (excludedAssemblies.Contains(assemblyRef.AssemblyName.Name, StringComparer.OrdinalIgnoreCase)) { Log.LogMessage("Ignoring OpenWrap reference to '{0}'", assemblyRef.File.Path.FullPath); continue; } if (InputReferences.Any(x => string.Equals(x.ItemSpec, assemblyRef.AssemblyName.Name, StringComparison.OrdinalIgnoreCase))) { Log.LogMessage("OpenWrap reference to '{0}' already added", assemblyRef.File.Path.FullPath); continue; } Log.LogMessage("Adding OpenWrap reference to '{0}'", assemblyRef.File.Path.FullPath); var item = new TaskItem(assemblyRef.AssemblyName.FullName); item.SetMetadata("HintPath", assemblyRef.File.Path.FullPath); item.SetMetadata("Private", CopyLocal ? "True" : "False"); item.SetMetadata("FromOpenWrap", "True"); items.Add(item); } OutputReferences = items.ToArray(); }