/// <summary> /// Create a new instance, for the specified directory, package name and version. /// </summary> /// <param name="bamDirectory">Bam directory.</param> /// <param name="name">Name.</param> /// <param name="version">Version.</param> public PackageDefinition( string bamDirectory, string name, string version) { var definitionName = (null != version) ? System.String.Format("{0}-{1}.xml", name, version) : name + ".xml"; var xmlFilename = System.IO.Path.Combine(bamDirectory, definitionName); this.Initialize(xmlFilename, validate); this.Name = name; this.Version = version; if (null != version) { this.Description = System.String.Format("A new package called {0} with version {1}", name, version); } else { this.Description = System.String.Format("A new package called {0}", name); } // add required BuildAMation assemblies var bamVersion = Graph.Instance.ProcessState.Version; if (bamVersion.Build > 0) { this.BamAssemblies.Add(new BamAssemblyDescription("Bam.Core", bamVersion.Major, bamVersion.Minor, bamVersion.Build)); } else { this.BamAssemblies.Add(new BamAssemblyDescription("Bam.Core", bamVersion.Major, bamVersion.Minor)); } // add required DotNet assemblies { var systemDesc = new DotNetAssemblyDescription("System"); var systemXmlDesc = new DotNetAssemblyDescription("System.Xml"); var systemCoreDesc = new DotNetAssemblyDescription("System.Core"); systemDesc.RequiredTargetFramework = "4.0.30319"; systemXmlDesc.RequiredTargetFramework = "4.0.30319"; systemCoreDesc.RequiredTargetFramework = "4.0.30319"; this.DotNetAssemblies.AddRange(new[] { systemDesc, systemXmlDesc, systemCoreDesc }); } }
private bool ReadDotNetAssemblies( System.Xml.XmlReader xmlReader) { var rootEl = "DotNetAssemblies"; if (rootEl != xmlReader.Name) { return false; } var elName = "DotNetAssembly"; while (xmlReader.Read()) { if ((xmlReader.Name == rootEl) && (xmlReader.NodeType == System.Xml.XmlNodeType.EndElement)) { break; } if (elName != xmlReader.Name) { throw new Exception("Unexpected child element of '{0}'. Found '{1}', expected '{2}'", rootEl, xmlReader.Name, elName); } var assemblyName = xmlReader.GetAttribute("name"); var targetFramework = xmlReader.GetAttribute("requiredTargetFramework"); var desc = new DotNetAssemblyDescription(assemblyName); if (null != targetFramework) { desc.RequiredTargetFramework = targetFramework; } this.DotNetAssemblies.AddUnique(desc); } return true; }