private static void write_nuspec_file_entry(config_higher cfg, XmlWriter f) { f.WriteComment(string.Format("{0}", cfg.get_name())); var a = new List<string>(); cfg.get_products(a); foreach (string s in a) { f.WriteStartElement("file"); f.WriteAttributeString("src", string.Format("release\\bin\\{0}", s)); f.WriteAttributeString("target", cfg.get_nuget_target_path()); f.WriteEndElement(); // file } }
private static void gen_higher( config_higher cfg, string root, string top ) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = false; using (XmlWriter f = XmlWriter.Create(Path.Combine(top, cfg.get_project_filename()), settings)) { f.WriteStartDocument(); f.WriteComment("Automatically generated"); f.WriteStartElement("Project", "http://schemas.microsoft.com/developer/msbuild/2003"); f.WriteAttributeString("ToolsVersion", ToolsVersion); f.WriteAttributeString("DefaultTargets", "Build"); // TODO is this actually needed? f.WriteStartElement("Import"); f.WriteAttributeString("Project", "$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props"); f.WriteAttributeString("Condition", "Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')"); f.WriteEndElement(); // Import f.WriteStartElement("PropertyGroup"); f.WriteElementString("ProjectGuid", cfg.guid); write_project_type_guids(f, GUID_PCL, GUID_CSHARP); f.WriteStartElement("Configuration"); f.WriteAttributeString("Condition", " '$(Configuration)' == '' "); f.WriteString("Debug"); f.WriteEndElement(); // Configuration f.WriteElementString("SchemaVersion", "2.0"); f.WriteElementString("Platform", "AnyCPU"); f.WriteElementString("DefaultLanguage", "en-us"); //f.WriteElementString("FileAlignment", "512"); f.WriteElementString("WarningLevel", "4"); //f.WriteElementString("PlatformTarget", cfg.cpu.Replace(" ", "")); f.WriteElementString("OutputType", "Library"); //f.WriteElementString("RootNamespace", "whatever"); // TODO f.WriteElementString("AssemblyName", cfg.assemblyname); f.WriteElementString("SignAssembly", "True"); f.WriteElementString("AssemblyOriginatorKeyFile", "../key.snk"); switch (cfg.env) { case "profile158": f.WriteElementString("TargetFrameworkVersion", "v4.0"); break; case "profile111": case "profile78": case "profile259": f.WriteElementString("TargetFrameworkVersion", "v4.5"); break; } f.WriteElementString("TargetFrameworkProfile", cfg.env); f.WriteEndElement(); // PropertyGroup write_section(cfg.get_dest_subpath(), f, true, cfg.defines); write_section(cfg.get_dest_subpath(), f, false, cfg.defines); f.WriteStartElement("ItemGroup"); foreach (string csfile in cfg.csfiles) { write_cs_compile(f, root, csfile); } f.WriteEndElement(); // ItemGroup f.WriteStartElement("ItemGroup"); f.WriteStartElement("ProjectReference"); { config_pcl other = projects.find_bait(cfg.env); f.WriteAttributeString("Include", other.get_project_filename()); f.WriteElementString("Project", other.guid); f.WriteElementString("Name", other.get_name()); //f.WriteElementString("Private", "true"); } f.WriteEndElement(); // ProjectReference f.WriteEndElement(); // ItemGroup f.WriteStartElement("Import"); f.WriteAttributeString("Project", "$(MSBuildExtensionsPath32)\\Microsoft\\Portable\\$(TargetFrameworkVersion)\\Microsoft.Portable.CSharp.targets"); f.WriteEndElement(); // Import f.WriteEndElement(); // Project f.WriteEndDocument(); } }