Update prebuild.exe to generate .csproj files for frameworkVersion
equal to "netstandard2_0", "net5_0", and "net6_0". Add sections for PackageReference and ProjectReference to add inter-project connections as well as NuGet packages. Existing generation of .csproj files for "framework4.*" remains unchanged. Working for simple projects with *References.
This commit is contained in:
2
Prebuild/runprebuild.bat
Normal file → Executable file
2
Prebuild/runprebuild.bat
Normal file → Executable file
@@ -123,5 +123,5 @@ echo.
|
||||
if %framework%==4_5 set %vstudio%=2012
|
||||
|
||||
echo Calling Prebuild for target %vstudio% with framework %framework%...
|
||||
Prebuild.exe /target vs%vstudio% /targetframework v%framework% /conditionals ISWIN;NET_%framework%
|
||||
..\bin\Prebuild.exe /target vs%vstudio% /targetframework v%framework% /conditionals ISWIN;NET_%framework%
|
||||
|
||||
|
||||
3
Prebuild/src/Core/Kernel.cs
Normal file → Executable file
3
Prebuild/src/Core/Kernel.cs
Normal file → Executable file
@@ -82,7 +82,8 @@ namespace Prebuild.Core
|
||||
private CommandLineCollection m_CommandLine;
|
||||
private Log m_Log;
|
||||
private CurrentDirectory m_CurrentWorkingDirectory;
|
||||
private XmlSchemaCollection m_Schemas;
|
||||
[Obsolete]
|
||||
private XmlSchemaCollection m_Schemas;
|
||||
|
||||
private readonly Dictionary<string, ITarget> m_Targets = new Dictionary<string, ITarget>();
|
||||
private readonly Dictionary<string, NodeEntry> m_Nodes = new Dictionary<string, NodeEntry>();
|
||||
|
||||
67
Prebuild/src/Core/Nodes/OptionsNode.cs
Normal file → Executable file
67
Prebuild/src/Core/Nodes/OptionsNode.cs
Normal file → Executable file
@@ -26,6 +26,7 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
|
||||
using Prebuild.Core.Attributes;
|
||||
@@ -314,6 +315,42 @@ namespace Prebuild.Core.Nodes
|
||||
}
|
||||
}
|
||||
|
||||
[OptionNode("OutputType")]
|
||||
private string m_OutputType = "Exe";
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string OutputType
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_OutputType;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_OutputType = value;
|
||||
}
|
||||
}
|
||||
|
||||
[OptionNode("RootNamespace")]
|
||||
private string m_RootNamespace = "";
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string RootNamespace
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_RootNamespace;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_RootNamespace = value;
|
||||
}
|
||||
}
|
||||
|
||||
[OptionNode("GenerateDocumentation")]
|
||||
private bool m_GenerateDocumentation;
|
||||
|
||||
@@ -626,6 +663,16 @@ namespace Prebuild.Core.Nodes
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return 'true' if the option symbol has had a value set
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <returns>'true' if the option value has been set</returns>
|
||||
public bool IsDefined(string name)
|
||||
{
|
||||
return m_FieldsDefined.Contains("m_" + name);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Copies to.
|
||||
/// </summary>
|
||||
@@ -647,6 +694,22 @@ namespace Prebuild.Core.Nodes
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder buff = new StringBuilder();
|
||||
foreach(FieldInfo f in m_OptionFields.Values)
|
||||
{
|
||||
if(m_FieldsDefined.Contains(f.Name))
|
||||
{
|
||||
buff.Append(f.Name);
|
||||
buff.Append("=");
|
||||
buff.Append(f.GetValue(this).ToString());
|
||||
buff.Append(",");
|
||||
}
|
||||
}
|
||||
return buff.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
100
Prebuild/src/Core/Nodes/PackageReferenceNode.cs
Executable file
100
Prebuild/src/Core/Nodes/PackageReferenceNode.cs
Executable file
@@ -0,0 +1,100 @@
|
||||
#region BSD License
|
||||
/*
|
||||
Copyright (c) 2004-2005 Matthew Holmes (matthew@wildfiregames.com), Dan Moorehead (dan05a@gmail.com)
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||
and the following disclaimer in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* The name of the author may not be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Xml;
|
||||
|
||||
using Prebuild.Core.Attributes;
|
||||
using Prebuild.Core.Interfaces;
|
||||
using Prebuild.Core.Utilities;
|
||||
|
||||
namespace Prebuild.Core.Nodes
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[DataNode("PackageReference")]
|
||||
public class PackageReferenceNode : DataNode, IComparable
|
||||
{
|
||||
#region Fields
|
||||
|
||||
private string m_Name = "unknown";
|
||||
private string m_Version;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the version.
|
||||
/// </summary>
|
||||
/// <value>The version.</value>
|
||||
public string Version
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Version;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Parses the specified node.
|
||||
/// </summary>
|
||||
/// <param name="node">The node.</param>
|
||||
public override void Parse(XmlNode node)
|
||||
{
|
||||
m_Name = Helper.AttributeValue(node, "name", m_Name);
|
||||
m_Version = Helper.AttributeValue(node, "version", m_Version);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IComparable Members
|
||||
|
||||
public int CompareTo(object obj)
|
||||
{
|
||||
PackageReferenceNode that = (PackageReferenceNode)obj;
|
||||
return this.m_Name.CompareTo(that.m_Name);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
43
Prebuild/src/Core/Nodes/ProjectNode.cs
Normal file → Executable file
43
Prebuild/src/Core/Nodes/ProjectNode.cs
Normal file → Executable file
@@ -114,7 +114,10 @@ namespace Prebuild.Core.Nodes
|
||||
v4_7,
|
||||
v4_7_1,
|
||||
v4_7_2,
|
||||
v4_8
|
||||
v4_8,
|
||||
netstandard2_0,
|
||||
net5_0,
|
||||
net6_0
|
||||
}
|
||||
/// <summary>
|
||||
/// The Node object representing /Prebuild/Solution/Project elements
|
||||
@@ -146,6 +149,8 @@ namespace Prebuild.Core.Nodes
|
||||
|
||||
private readonly Dictionary<string, ConfigurationNode> m_Configurations = new Dictionary<string, ConfigurationNode>();
|
||||
private readonly List<ReferencePathNode> m_ReferencePaths = new List<ReferencePathNode>();
|
||||
private readonly List<ProjectReferenceNode> m_ProjectReferences = new List<ProjectReferenceNode>();
|
||||
private readonly List<PackageReferenceNode> m_PackageReferences = new List<PackageReferenceNode>();
|
||||
private readonly List<ReferenceNode> m_References = new List<ReferenceNode>();
|
||||
private readonly List<AuthorNode> m_Authors = new List<AuthorNode>();
|
||||
private FilesNode m_Files;
|
||||
@@ -417,6 +422,34 @@ namespace Prebuild.Core.Nodes
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the references.
|
||||
/// </summary>
|
||||
/// <value>The references.</value>
|
||||
public List<ProjectReferenceNode> ProjectReferences
|
||||
{
|
||||
get
|
||||
{
|
||||
List<ProjectReferenceNode> tmp = new List<ProjectReferenceNode>(m_ProjectReferences);
|
||||
tmp.Sort();
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the package references.
|
||||
/// </summary>
|
||||
/// <value>The references.</value>
|
||||
public List<PackageReferenceNode> PackageReferences
|
||||
{
|
||||
get
|
||||
{
|
||||
List<PackageReferenceNode> tmp = new List<PackageReferenceNode>(m_PackageReferences);
|
||||
tmp.Sort();
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Authors list.
|
||||
@@ -591,6 +624,14 @@ namespace Prebuild.Core.Nodes
|
||||
else if(dataNode is ReferenceNode)
|
||||
{
|
||||
m_References.Add((ReferenceNode)dataNode);
|
||||
}
|
||||
else if(dataNode is PackageReferenceNode)
|
||||
{
|
||||
m_PackageReferences.Add((PackageReferenceNode)dataNode);
|
||||
}
|
||||
else if(dataNode is ProjectReferenceNode)
|
||||
{
|
||||
m_ProjectReferences.Add((ProjectReferenceNode)dataNode);
|
||||
}
|
||||
else if(dataNode is AuthorNode)
|
||||
{
|
||||
|
||||
100
Prebuild/src/Core/Nodes/ProjectReferenceNode.cs
Executable file
100
Prebuild/src/Core/Nodes/ProjectReferenceNode.cs
Executable file
@@ -0,0 +1,100 @@
|
||||
#region BSD License
|
||||
/*
|
||||
Copyright (c) 2004-2005 Matthew Holmes (matthew@wildfiregames.com), Dan Moorehead (dan05a@gmail.com)
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||
and the following disclaimer in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* The name of the author may not be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Xml;
|
||||
|
||||
using Prebuild.Core.Attributes;
|
||||
using Prebuild.Core.Interfaces;
|
||||
using Prebuild.Core.Utilities;
|
||||
|
||||
namespace Prebuild.Core.Nodes
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[DataNode("ProjectReference")]
|
||||
public class ProjectReferenceNode : DataNode, IComparable
|
||||
{
|
||||
#region Fields
|
||||
|
||||
private string m_Name = "unknown";
|
||||
private string m_Include;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the path.
|
||||
/// </summary>
|
||||
/// <value>The path.</value>
|
||||
public string Include
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Include;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Parses the specified node.
|
||||
/// </summary>
|
||||
/// <param name="node">The node.</param>
|
||||
public override void Parse(XmlNode node)
|
||||
{
|
||||
m_Name = Helper.AttributeValue(node, "name", m_Name);
|
||||
m_Include = Helper.AttributeValue(node, "include", m_Include);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IComparable Members
|
||||
|
||||
public int CompareTo(object obj)
|
||||
{
|
||||
ProjectReferenceNode that = (ProjectReferenceNode)obj;
|
||||
return this.m_Name.CompareTo(that.m_Name);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
258
Prebuild/src/Core/Targets/VSGenericTarget.cs
Normal file → Executable file
258
Prebuild/src/Core/Targets/VSGenericTarget.cs
Normal file → Executable file
@@ -154,9 +154,9 @@ namespace Prebuild.Core.Targets
|
||||
}
|
||||
|
||||
private void WriteProject(SolutionNode solution, ProjectNode project)
|
||||
{
|
||||
{
|
||||
if (!tools.ContainsKey(project.Language))
|
||||
{
|
||||
{
|
||||
throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
|
||||
}
|
||||
|
||||
@@ -167,6 +167,23 @@ namespace Prebuild.Core.Targets
|
||||
kernel.CurrentWorkingDirectory.Push();
|
||||
Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
|
||||
|
||||
FrameworkVersion fv = project.FrameworkVersion;
|
||||
if (fv == FrameworkVersion.net5_0 || fv == FrameworkVersion.net6_0 || fv == FrameworkVersion.netstandard2_0)
|
||||
{
|
||||
// Write the newer .csproj file format
|
||||
WriteProjectDotNet(solution, project, ps);
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteProjectFramework(solution, project, toolInfo, projectFile, ps);
|
||||
}
|
||||
|
||||
kernel.CurrentWorkingDirectory.Pop();
|
||||
}
|
||||
|
||||
private void WriteProjectFramework(SolutionNode solution, ProjectNode project, ToolInfo toolInfo, string projectFile, StreamWriter ps)
|
||||
{
|
||||
|
||||
#region Project File
|
||||
using (ps)
|
||||
{
|
||||
@@ -260,77 +277,16 @@ namespace Prebuild.Core.Targets
|
||||
|
||||
//ps.WriteLine(" </Settings>");
|
||||
|
||||
Dictionary<ReferenceNode, ProjectNode> projectReferences = new Dictionary<ReferenceNode, ProjectNode>();
|
||||
List<ReferenceNode> otherReferences = new List<ReferenceNode>();
|
||||
// Output warnings if NET6 stuff is in a Framework4 definition
|
||||
if (project.ProjectReferences.Count > 0) {
|
||||
kernel.Log.Write(LogType.Warning, "ProjectReference is not processed for Frameworks.");
|
||||
}
|
||||
if (project.PackageReferences.Count > 0) {
|
||||
kernel.Log.Write(LogType.Warning, "PackageReference is not processed for Frameworks.");
|
||||
}
|
||||
|
||||
foreach (ReferenceNode refr in project.References)
|
||||
{
|
||||
ProjectNode projectNode = FindProjectInSolution(refr.Name, solution);
|
||||
|
||||
if (projectNode == null)
|
||||
otherReferences.Add(refr);
|
||||
else
|
||||
projectReferences.Add(refr, projectNode);
|
||||
}
|
||||
// Assembly References
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
|
||||
foreach (ReferenceNode refr in otherReferences)
|
||||
{
|
||||
ps.Write(" <Reference");
|
||||
ps.Write(" Include=\"");
|
||||
ps.Write(refr.Name);
|
||||
ps.WriteLine("\" >");
|
||||
ps.Write(" <Name>");
|
||||
ps.Write(refr.Name);
|
||||
ps.WriteLine("</Name>");
|
||||
|
||||
if(!String.IsNullOrEmpty(refr.Path))
|
||||
{
|
||||
// Use absolute path to assembly (for determining assembly type)
|
||||
string absolutePath = Path.Combine(project.FullPath, refr.Path);
|
||||
if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "exe"))) {
|
||||
// Assembly is an executable (exe)
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "exe"));
|
||||
} else if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "dll"))) {
|
||||
// Assembly is an library (dll)
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
|
||||
} else {
|
||||
string referencePath = Helper.MakeFilePath(refr.Path, refr.Name, "dll");
|
||||
kernel.Log.Write(LogType.Warning, "Reference \"{0}\": The specified file doesn't exist.", referencePath);
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
|
||||
}
|
||||
}
|
||||
|
||||
ps.WriteLine(" <Private>{0}</Private>", refr.LocalCopy);
|
||||
ps.WriteLine(" </Reference>");
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
|
||||
//Project References
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
foreach (KeyValuePair<ReferenceNode, ProjectNode> pair in projectReferences)
|
||||
{
|
||||
ToolInfo tool = tools[pair.Value.Language];
|
||||
if (tools == null)
|
||||
throw new UnknownLanguageException();
|
||||
|
||||
string path =
|
||||
Helper.MakePathRelativeTo(project.FullPath,
|
||||
Helper.MakeFilePath(pair.Value.FullPath, pair.Value.Name, tool.FileExtension));
|
||||
ps.WriteLine(" <ProjectReference Include=\"{0}\">", path);
|
||||
|
||||
// TODO: Allow reference to visual basic projects
|
||||
ps.WriteLine(" <Name>{0}</Name>", pair.Value.Name);
|
||||
ps.WriteLine(" <Project>{0}</Project>", pair.Value.Guid.ToString("B").ToUpper());
|
||||
ps.WriteLine(" <Package>{0}</Package>", tool.Guid.ToUpper());
|
||||
|
||||
//This is the Copy Local flag in VS
|
||||
ps.WriteLine(" <Private>{0}</Private>", pair.Key.LocalCopy);
|
||||
|
||||
ps.WriteLine(" </ProjectReference>");
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
// Output the ItemGroup for project.References
|
||||
WriteProjectReferences(solution, project, ps);
|
||||
|
||||
// ps.WriteLine(" </Build>");
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
@@ -351,7 +307,8 @@ namespace Prebuild.Core.Targets
|
||||
}
|
||||
|
||||
|
||||
foreach (string filePath in project.Files)
|
||||
#region Files
|
||||
foreach (string filePath in project.Files)
|
||||
{
|
||||
// Add the filePath with the destination as the key
|
||||
// will use it later to form the copy parameters with Include lists
|
||||
@@ -526,6 +483,7 @@ namespace Prebuild.Core.Targets
|
||||
}
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
#endregion
|
||||
|
||||
/*
|
||||
* Copy Task
|
||||
@@ -611,11 +569,159 @@ namespace Prebuild.Core.Targets
|
||||
ps.WriteLine("</Project>");
|
||||
}
|
||||
#endregion
|
||||
|
||||
kernel.CurrentWorkingDirectory.Pop();
|
||||
}
|
||||
|
||||
private void WriteSolution(SolutionNode solution, bool writeSolutionToDisk)
|
||||
private void WriteProjectDotNet(SolutionNode solution, ProjectNode project, StreamWriter ps)
|
||||
{
|
||||
#region Project File
|
||||
using (ps)
|
||||
{
|
||||
ps.WriteLine("<Project Sdk=\"Microsoft.NET.Sdk\">");
|
||||
ps.WriteLine();
|
||||
|
||||
ps.WriteLine(" <PropertyGroup>");
|
||||
ps.WriteLine(" <TargetFramework>{0}</TargetFramework>", project.FrameworkVersion.ToString().Replace("_","."));
|
||||
ps.WriteLine(" <AssemblyName>{0}</AssemblyName>", project.Name);
|
||||
ps.WriteLine(" </PropertyGroup>");
|
||||
ps.WriteLine();
|
||||
|
||||
// For .NET5/6 files, the Configuration section does not specify a build target
|
||||
// so here we look for the "unknown" target type for the specified parameters.
|
||||
foreach (ConfigurationNode conf in project.Configurations)
|
||||
{
|
||||
if (conf.Name == "unknown")
|
||||
{
|
||||
ps.WriteLine(" <PropertyGroup>");
|
||||
string[] optionNames = new string[] { "OutputPath", "OutputType", "RootNamespace" };
|
||||
foreach (var opt in optionNames)
|
||||
{
|
||||
if (conf.Options.IsDefined(opt))
|
||||
{
|
||||
ps.WriteLine(" <{0}>{1}</{0}>", opt,
|
||||
Helper.EndPath(Helper.NormalizePath(conf.Options[opt].ToString())));
|
||||
}
|
||||
}
|
||||
ps.WriteLine(" </PropertyGroup>");
|
||||
ps.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
if (project.ProjectReferences.Count > 0)
|
||||
{
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
foreach (ProjectReferenceNode refer in project.ProjectReferences)
|
||||
{
|
||||
ps.WriteLine(" <ProjectReference Include=\"{0}\" />", refer.Include);
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
ps.WriteLine();
|
||||
}
|
||||
if (project.PackageReferences.Count > 0)
|
||||
{
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
foreach (PackageReferenceNode pack in project.PackageReferences)
|
||||
{
|
||||
ps.WriteLine(" <PackageReference Include=\"{0}\" Version=\"{1}\" />",
|
||||
pack.Name, pack.Version);
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
ps.WriteLine();
|
||||
}
|
||||
// Output the ItemGroup for project.References
|
||||
WriteProjectReferences(solution, project, ps);
|
||||
|
||||
ps.WriteLine("</Project>");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
private void WriteProjectReferences(SolutionNode solution, ProjectNode project, StreamWriter ps)
|
||||
{
|
||||
Dictionary<ReferenceNode, ProjectNode> projectReferences = new Dictionary<ReferenceNode, ProjectNode>();
|
||||
List<ReferenceNode> otherReferences = new List<ReferenceNode>();
|
||||
|
||||
foreach (ReferenceNode refr in project.References)
|
||||
{
|
||||
ProjectNode projectNode = FindProjectInSolution(refr.Name, solution);
|
||||
|
||||
if (projectNode == null)
|
||||
otherReferences.Add(refr);
|
||||
else
|
||||
projectReferences.Add(refr, projectNode);
|
||||
}
|
||||
// Assembly References
|
||||
if (otherReferences.Count > 0)
|
||||
{
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
|
||||
foreach (ReferenceNode refr in otherReferences)
|
||||
{
|
||||
ps.Write(" <Reference");
|
||||
ps.Write(" Include=\"");
|
||||
ps.Write(refr.Name);
|
||||
ps.WriteLine("\" >");
|
||||
ps.Write(" <Name>");
|
||||
ps.Write(refr.Name);
|
||||
ps.WriteLine("</Name>");
|
||||
|
||||
if(!String.IsNullOrEmpty(refr.Path))
|
||||
{
|
||||
// Use absolute path to assembly (for determining assembly type)
|
||||
string absolutePath = Path.Combine(project.FullPath, refr.Path);
|
||||
if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "exe")))
|
||||
{
|
||||
// Assembly is an executable (exe)
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "exe"));
|
||||
} else if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "dll")))
|
||||
{
|
||||
// Assembly is an library (dll)
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
|
||||
} else
|
||||
{
|
||||
string referencePath = Helper.MakeFilePath(refr.Path, refr.Name, "dll");
|
||||
kernel.Log.Write(LogType.Warning, "Reference \"{0}\": The specified file doesn't exist.", referencePath);
|
||||
ps.WriteLine(" <HintPath>{0}</HintPath>", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
|
||||
}
|
||||
}
|
||||
|
||||
ps.WriteLine(" <Private>{0}</Private>", refr.LocalCopy);
|
||||
ps.WriteLine(" </Reference>");
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
ps.WriteLine();
|
||||
}
|
||||
|
||||
//Project References
|
||||
if (projectReferences.Count > 0)
|
||||
{
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
foreach (KeyValuePair<ReferenceNode, ProjectNode> pair in projectReferences)
|
||||
{
|
||||
ToolInfo tool = tools[pair.Value.Language];
|
||||
if (tools == null)
|
||||
throw new UnknownLanguageException();
|
||||
|
||||
string path =
|
||||
Helper.MakePathRelativeTo(project.FullPath,
|
||||
Helper.MakeFilePath(pair.Value.FullPath, pair.Value.Name, tool.FileExtension));
|
||||
ps.WriteLine(" <ProjectReference Include=\"{0}\">", path);
|
||||
|
||||
// TODO: Allow reference to visual basic projects
|
||||
ps.WriteLine(" <Name>{0}</Name>", pair.Value.Name);
|
||||
ps.WriteLine(" <Project>{0}</Project>", pair.Value.Guid.ToString("B").ToUpper());
|
||||
ps.WriteLine(" <Package>{0}</Package>", tool.Guid.ToUpper());
|
||||
|
||||
//This is the Copy Local flag in VS
|
||||
ps.WriteLine(" <Private>{0}</Private>", pair.Key.LocalCopy);
|
||||
|
||||
ps.WriteLine(" </ProjectReference>");
|
||||
}
|
||||
ps.WriteLine(" </ItemGroup>");
|
||||
ps.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
private void WriteSolution(SolutionNode solution, bool writeSolutionToDisk)
|
||||
{
|
||||
kernel.Log.Write("Creating {0} solution and project files", VersionName);
|
||||
|
||||
|
||||
525
Prebuild/src/Prebuild.csproj
Normal file → Executable file
525
Prebuild/src/Prebuild.csproj
Normal file → Executable file
@@ -1,253 +1,274 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{7F415321-0000-0000-0000-000000000000}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<ApplicationIcon>App.ico</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>Prebuild</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>Prebuild.snk</AssemblyOriginatorKeyFile>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>
|
||||
</AppDesignerFolder>
|
||||
<RootNamespace>Prebuild</RootNamespace>
|
||||
<StartupObject>Prebuild.Prebuild</StartupObject>
|
||||
<StartArguments>
|
||||
</StartArguments>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ReleaseVersion>2.0.8</ReleaseVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.EnterpriseServices">
|
||||
<Name>System.EnterpriseServices</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.Xml</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="App.ico">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\prebuild-1.10.xsd">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\autotools.xml">
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Core\Targets\VS2019Target.cs" />
|
||||
<Compile Include="Prebuild.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\FatalException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Kernel.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\UnknownLanguageException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\WarningException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\DataNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\OptionNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\TargetAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\IDataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\ITarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\AuthorNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanFilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanupNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNodeCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DescriptionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ExcludeNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FileNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\MatchNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\OptionsNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProcessNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferencePathNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\SolutionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\IfContext.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\Preprocessor.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\AutotoolsTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\DebugTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MakefileTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MonoDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\NAntTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelop2Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\ToolInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2002Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2003Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2005Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2008Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2010Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2012Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2013Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSGenericTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSVersion.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\XcodeTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CommandLineCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CurrentDirectory.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Helper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Log.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2015Target.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{7F415321-0000-0000-0000-000000000000}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<ApplicationIcon>App.ico</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>prebuild</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>Prebuild.snk</AssemblyOriginatorKeyFile>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>
|
||||
</AppDesignerFolder>
|
||||
<RootNamespace>Prebuild</RootNamespace>
|
||||
<StartupObject>Prebuild.Prebuild</StartupObject>
|
||||
<StartArguments>
|
||||
</StartArguments>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE;ISWIN;NET_4_5</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoStdLib>False</NoStdLib>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<Prefer32Bit>False</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE;ISWIN;NET_4_5</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoStdLib>False</NoStdLib>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<Prefer32Bit>False</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.EnterpriseServices">
|
||||
<Name>System.EnterpriseServices</Name>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.Xml</Name>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="App.ico">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\prebuild-1.10.xsd">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\autotools.xml">
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Core\Nodes\PackageReferenceNode.cs" />
|
||||
<Compile Include="Core\Nodes\ProjectReferenceNode.cs" />
|
||||
<Compile Include="Prebuild.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\FatalException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Kernel.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\UnknownLanguageException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\WarningException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\DataNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\OptionNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\TargetAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\IDataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\ITarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\AuthorNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanFilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanupNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNodeCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DescriptionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ExcludeNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FileNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\MatchNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\OptionsNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProcessNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferencePathNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\SolutionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\IfContext.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\Preprocessor.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\AutotoolsTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\DebugTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MakefileTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MonoDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\NAntTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelop2Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\ToolInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2002Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2003Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2005Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2008Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2010Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2012Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2013Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2015Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2019Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSGenericTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSVersion.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\XcodeTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CommandLineCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CurrentDirectory.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Helper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Log.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
356
Prebuild/src/data/prebuild-1.11.xsd
Executable file
356
Prebuild/src/data/prebuild-1.11.xsd
Executable file
@@ -0,0 +1,356 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://dnpb.sourceforge.net/schemas/prebuild-1.10.xsd"
|
||||
xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.10.xsd">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Copyright (c) 2004-2007
|
||||
Matthew Holmes (calefaction at houston . rr . com),
|
||||
Dan Moorehead (dan05a at gmail . com),
|
||||
David Hudson (jendave at yahoo dot com),
|
||||
C.J. Adams-Collier (cjac at colliertech dot com)
|
||||
|
||||
.NET Prebuild is a cross-platform XML-driven pre-build tool which
|
||||
allows developers to easily generate project or make files for major
|
||||
IDE's and .NET development tools including: Visual Studio .NET 2002,
|
||||
2003, and 2005, SharpDevelop, MonoDevelop, NAnt, Xcode and the GNU Autotools.
|
||||
|
||||
BSD License:
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||
and the following disclaimer in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* The name of the author may not be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="Prebuild">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="Solution" minOccurs="1" maxOccurs="1" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" />
|
||||
<xs:attribute name="checkOsVars" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Process" type="xs:string" />
|
||||
|
||||
<xs:element name="Solution">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
|
||||
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="Options" minOccurs="0" />
|
||||
<xs:element ref="Files" minOccurs="0" />
|
||||
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="activeConfig" type="xs:string" default="Debug" />
|
||||
<xs:attribute name="path" type="xs:string" default="" />
|
||||
<xs:attribute name="version" type="xs:string" default="1.0.0" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="EmbeddedSolution">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="Files" minOccurs="0" />
|
||||
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="activeConfig" type="xs:string" default="Debug" />
|
||||
<xs:attribute name="path" type="xs:string" default="" />
|
||||
<xs:attribute name="version" type="xs:string" default="1.0.0" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="DatabaseProject">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="DatabaseReference" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="path" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="DatabaseReference">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="providerId" type="xs:string" />
|
||||
<xs:attribute name="providerName" type="xs:string" />
|
||||
<xs:attribute name="connectionString" type="xs:string" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Project">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
|
||||
<xs:element name="ReferencePath" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="Reference" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string"/>
|
||||
<xs:attribute name="path" type="xs:string" />
|
||||
<xs:attribute name="localCopy" type="xs:boolean" />
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ProjectReference" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string"/>
|
||||
<xs:attribute name="include" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="PackageReference" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string"/>
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element ref="Files" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="designerFolder" type="xs:string" default="" />
|
||||
<xs:attribute name="filterGroups" type="xs:string" default="" />
|
||||
<xs:attribute name="path" type="xs:string" default="" />
|
||||
<xs:attribute name="icon" type="xs:string" default="" />
|
||||
<xs:attribute name="configFile" type="xs:string" default="" />
|
||||
<xs:attribute name="version" type="xs:string" default="1.0.0" />
|
||||
<xs:attribute name="guid" type="xs:string"/>
|
||||
<xs:attribute name="language" default="C#">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="C#" />
|
||||
<xs:enumeration value="VB.NET" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="type" default="Exe">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Exe" />
|
||||
<xs:enumeration value="WinExe" />
|
||||
<xs:enumeration value="Library" />
|
||||
<xs:enumeration value="Web" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="runtime" default="Microsoft">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Microsoft" />
|
||||
<xs:enumeration value="Mono" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="frameworkVersion" default="v2_0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="v2_0" />
|
||||
<xs:enumeration value="v3_0" />
|
||||
<xs:enumeration value="v3_5" />
|
||||
<xs:enumeration value="v4_0" />
|
||||
<xs:enumeration value="v4_5" />
|
||||
<xs:enumeration value="v4_5_1" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="startupObject" type="xs:string" default="" />
|
||||
<xs:attribute name="rootNamespace" type="xs:string" />
|
||||
<xs:attribute name="assemblyName" type="xs:string" />
|
||||
<xs:attribute name="generateAssemblyInfoFile" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="assemblyName" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Configuration">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Options" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="platform" type="xs:string" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Options">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="CompilerDefines" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="OptimizeCode" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="Prefer32Bit" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="CheckUnderflowOverflow" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="AllowUnsafe" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="PreBuildEvent" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="PostBuildEvent" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="RunPostBuildEvent" minOccurs="0" default="OnBuildSuccess">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="OnBuildSuccess" />
|
||||
<xs:enumeration value="Always" />
|
||||
<xs:enumeration value="OnOutputUpdated" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="RunScript" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="PreBuildEventArgs" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="PostBuildEventArgs" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="WarningLevel" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:minInclusive value="0" />
|
||||
<xs:maxInclusive value="4" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="WarningsAsErrors" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="SuppressWarnings" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="OutputPath" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="GenerateDocumentation" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="XmlDocFile" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="DebugInformation" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="RegisterComInterop" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="RemoveIntegerChecks" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="IncrementalBuild" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="BaseAddress" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="FileAlignment" type="xs:integer" minOccurs="0" />
|
||||
<xs:element name="NoStdLib" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="KeyFile" type="xs:string" minOccurs="0" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Files">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="File" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element ref="Match" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="File">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="resourceName" type="xs:string" default="" />
|
||||
<xs:attribute name="buildAction" default="Compile">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="None" />
|
||||
<xs:enumeration value="Compile" />
|
||||
<xs:enumeration value="Content" />
|
||||
<xs:enumeration value="EmbeddedResource" />
|
||||
<xs:enumeration value="ApplicationDefinition" />
|
||||
<xs:enumeration value="Page" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="subType" default="Code">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Code" />
|
||||
<xs:enumeration value="CodeBehind" />
|
||||
<xs:enumeration value="Component" />
|
||||
<xs:enumeration value="Form" />
|
||||
<xs:enumeration value="Settings" />
|
||||
<xs:enumeration value="UserControl" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="link" type="xs:boolean" />
|
||||
<xs:attribute name="copyToOutput" default="Never">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Never" />
|
||||
<xs:enumeration value="Always" />
|
||||
<xs:enumeration value="PreserveNewest" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="preservePath" type="xs:boolean" />
|
||||
<xs:attribute name="linkPath" type="xs:string" />
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Match">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Exclude" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="path" type="xs:string" />
|
||||
<xs:attribute name="pattern" type="xs:string" use="required" />
|
||||
<xs:attribute name="recurse" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="useRegex" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="buildAction" default="Compile">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="None" />
|
||||
<xs:enumeration value="Compile" />
|
||||
<xs:enumeration value="Content" />
|
||||
<xs:enumeration value="EmbeddedResource" />
|
||||
<xs:enumeration value="ApplicationDefinition" />
|
||||
<xs:enumeration value="Page" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="resourceName" type="xs:string" default="" />
|
||||
<xs:attribute name="subType" default="Code">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Code" />
|
||||
<xs:enumeration value="CodeBehind" />
|
||||
<xs:enumeration value="Component" />
|
||||
<xs:enumeration value="Designer" />
|
||||
<xs:enumeration value="Form" />
|
||||
<xs:enumeration value="Settings" />
|
||||
<xs:enumeration value="UserControl" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="link" type="xs:boolean" />
|
||||
<xs:attribute name="copyToOutput" default="Never">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Never" />
|
||||
<xs:enumeration value="Always" />
|
||||
<xs:enumeration value="PreserveNewest" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="preservePath" type="xs:boolean" />
|
||||
<xs:attribute name="linkPath" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Exclude">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string" />
|
||||
<xs:attribute name="pattern" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
Reference in New Issue
Block a user