66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
|
|
|
|
using System.IO;
|
|
using System.Xml;
|
|
using ln.build.semver;
|
|
|
|
namespace ln.build.support.dotnet
|
|
{
|
|
|
|
public class CSProjHelper
|
|
{
|
|
public string FileName { get; set; }
|
|
|
|
public CSProjHelper(string filename)
|
|
{
|
|
FileName = filename;
|
|
}
|
|
|
|
public string GetName()
|
|
{
|
|
XmlDocument projectFile = new XmlDocument();
|
|
projectFile.Load(FileName);
|
|
|
|
XmlNode nodeVersion = projectFile.SelectSingleNode("Project/PropertyGroup/AssemblyName");
|
|
return nodeVersion?.InnerText ?? Path.GetFileNameWithoutExtension(FileName);
|
|
}
|
|
|
|
public SemVersion GetVersion()
|
|
{
|
|
XmlDocument projectFile = new XmlDocument();
|
|
projectFile.Load(FileName);
|
|
XmlNode nodeVersion = projectFile.SelectSingleNode("Project/PropertyGroup/Version");
|
|
return SemVersion.Parse(nodeVersion.InnerText);
|
|
}
|
|
|
|
public void SetVersion(SemVersion version)
|
|
{
|
|
XmlDocument projectFile = new XmlDocument();
|
|
projectFile.Load(FileName);
|
|
|
|
XmlNode nodeVersion = projectFile.SelectSingleNode("Project/PropertyGroup/Version");
|
|
nodeVersion.InnerText = version.ToString();
|
|
|
|
projectFile.Save(FileName);
|
|
}
|
|
|
|
public bool IsPackable()
|
|
{
|
|
XmlDocument projectFile = new XmlDocument();
|
|
projectFile.Load(FileName);
|
|
XmlNode nodePackable = projectFile.SelectSingleNode("Project/PropertyGroup/IsPackable");
|
|
return bool.Parse(nodePackable?.InnerText ?? "true");
|
|
}
|
|
|
|
public string GetOutputType()
|
|
{
|
|
XmlDocument projectFile = new XmlDocument();
|
|
projectFile.Load(FileName);
|
|
|
|
XmlNode nodeVersion = projectFile.SelectSingleNode("Project/PropertyGroup/OutputType");
|
|
return nodeVersion?.InnerText ?? "Library";
|
|
}
|
|
|
|
}
|
|
|
|
} |