本文整理汇总了C#中MonoDevelop.Projects.Formats.MSBuild.MSBuildFileFormat类的典型用法代码示例。如果您正苦于以下问题:C# MSBuildFileFormat类的具体用法?C# MSBuildFileFormat怎么用?C# MSBuildFileFormat使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MSBuildFileFormat类属于MonoDevelop.Projects.Formats.MSBuild命名空间,在下文中一共展示了MSBuildFileFormat类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteFile
public void WriteFile (string file, object obj, MSBuildFileFormat format, bool saveProjects, IProgressMonitor monitor)
{
Solution sol = (Solution) obj;
string tmpfilename = String.Empty;
try {
monitor.BeginTask (GettextCatalog.GetString ("Saving solution: {0}", file), 1);
try {
if (File.Exists (file))
tmpfilename = Path.GetTempFileName ();
} catch (IOException) {
}
string baseDir = Path.GetDirectoryName (file);
if (tmpfilename == String.Empty) {
WriteFileInternal (file, sol, baseDir, format, saveProjects, monitor);
} else {
WriteFileInternal (tmpfilename, sol, baseDir, format, saveProjects, monitor);
FileService.SystemRename (tmpfilename, file);
}
} catch (Exception ex) {
monitor.ReportError (GettextCatalog.GetString ("Could not save solution: {0}", file), ex);
LoggingService.LogError (GettextCatalog.GetString ("Could not save solution: {0}", file), ex);
if (!String.IsNullOrEmpty (tmpfilename) && File.Exists (tmpfilename))
File.Delete (tmpfilename);
throw;
} finally {
monitor.EndTask ();
}
}
示例2: CanReadFile
public bool CanReadFile (string file, MSBuildFileFormat format)
{
if (String.Compare (Path.GetExtension (file), ".sln", StringComparison.OrdinalIgnoreCase) == 0) {
string tmp;
string version = GetSlnFileVersion (file, out tmp);
return format.SupportsSlnVersion (version);
}
return false;
}
示例3: CanReadFile
public bool CanReadFile (string file, MSBuildFileFormat format)
{
if (String.Compare (Path.GetExtension (file), ".sln", true) == 0) {
string tmp;
string version = GetSlnFileVersion (file, out tmp);
return version == format.SlnVersion;
}
return false;
}
示例4: LoadItem
public static SolutionEntityItem LoadItem (IProgressMonitor monitor, string fileName, MSBuildFileFormat expectedFormat, string typeGuid, string itemGuid)
{
foreach (ItemTypeNode node in GetItemTypeNodes ()) {
if (node.CanHandleFile (fileName, typeGuid))
return node.LoadSolutionItem (monitor, fileName, expectedFormat, itemGuid);
}
if (string.IsNullOrEmpty (typeGuid) && IsProjectSubtypeFile (fileName)) {
typeGuid = LoadProjectTypeGuids (fileName);
foreach (ItemTypeNode node in GetItemTypeNodes ()) {
if (node.CanHandleFile (fileName, typeGuid))
return node.LoadSolutionItem (monitor, fileName, expectedFormat, itemGuid);
}
}
return null;
}
示例5: CanWriteFile
public bool CanWriteFile (object obj, MSBuildFileFormat format)
{
return obj is Solution;
}
示例6: GetValidFormatName
public string GetValidFormatName (object obj, string fileName, MSBuildFileFormat format)
{
return Path.ChangeExtension (fileName, ".sln");
}
示例7: WriteFileInternal
void WriteFileInternal (string file, Solution solution, string baseDir, MSBuildFileFormat format, bool saveProjects, IProgressMonitor monitor)
{
SolutionFolder c = solution.RootFolder;
using (StreamWriter sw = new StreamWriter (file, false, Encoding.UTF8)) {
sw.NewLine = "\r\n";
SlnData slnData = GetSlnData (c);
if (slnData == null) {
// If a non-msbuild project is being converted by just
// changing the fileformat, then create the SlnData for it
slnData = new SlnData ();
c.ExtendedProperties [typeof (SlnFileFormat)] = slnData;
}
slnData.UpdateVersion (format);
sw.WriteLine ();
//Write Header
sw.WriteLine ("Microsoft Visual Studio Solution File, Format Version " + slnData.VersionString);
sw.WriteLine (slnData.HeaderComment);
if (slnData.VisualStudioVersion != null)
sw.WriteLine ("VisualStudioVersion = {0}", slnData.VisualStudioVersion);
if (slnData.MinimumVisualStudioVersion != null)
sw.WriteLine ("MinimumVisualStudioVersion = {0}", slnData.MinimumVisualStudioVersion);
//Write the projects
monitor.BeginTask (GettextCatalog.GetString ("Saving projects"), 1);
WriteProjects (c, baseDir, sw, saveProjects, monitor);
monitor.EndTask ();
//Write the lines for unknownProjects
foreach (string l in slnData.UnknownProjects)
sw.WriteLine (l);
//Write the Globals
sw.WriteLine ("Global");
//Write SolutionConfigurationPlatforms
//FIXME: SolutionConfigurations?
sw.WriteLine ("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution");
foreach (SolutionConfiguration config in solution.Configurations)
sw.WriteLine ("\t\t{0} = {0}", ToSlnConfigurationId (config));
sw.WriteLine ("\tEndGlobalSection");
//Write ProjectConfigurationPlatforms
sw.WriteLine ("\tGlobalSection(ProjectConfigurationPlatforms) = postSolution");
List<string> list = new List<string> ();
WriteProjectConfigurations (solution, list);
list.Sort (StringComparer.Create (CultureInfo.InvariantCulture, true));
foreach (string s in list)
sw.WriteLine (s);
//Write lines for projects we couldn't load
if (slnData.SectionExtras.ContainsKey ("ProjectConfigurationPlatforms")) {
foreach (string s in slnData.SectionExtras ["ProjectConfigurationPlatforms"])
sw.WriteLine ("\t\t{0}", s);
}
sw.WriteLine ("\tEndGlobalSection");
//Write Nested Projects
ICollection<SolutionFolder> folders = solution.RootFolder.GetAllItems<SolutionFolder> ();
if (folders.Count > 1) {
// If folders ==1, that's the root folder
sw.WriteLine ("\tGlobalSection(NestedProjects) = preSolution");
foreach (SolutionFolder folder in folders) {
if (folder.IsRoot)
continue;
WriteNestedProjects (folder, solution.RootFolder, sw);
}
sw.WriteLine ("\tEndGlobalSection");
}
//Write custom properties
MSBuildSerializer ser = new MSBuildSerializer (solution.FileName);
DataItem data = (DataItem) ser.Serialize (solution, typeof(Solution));
if (data.HasItemData) {
sw.WriteLine ("\tGlobalSection(MonoDevelopProperties) = preSolution");
WriteDataItem (sw, data);
sw.WriteLine ("\tEndGlobalSection");
}
// Write custom properties for configurations
foreach (SolutionConfiguration conf in solution.Configurations) {
data = (DataItem) ser.Serialize (conf);
if (data.HasItemData) {
sw.WriteLine ("\tGlobalSection(MonoDevelopProperties." + conf.Id + ") = preSolution");
WriteDataItem (sw, data);
sw.WriteLine ("\tEndGlobalSection");
}
}
//Write 'others'
if (slnData.GlobalExtra != null) {
//.........这里部分代码省略.........
示例8: LoadSolutionItem
public override SolutionEntityItem LoadSolutionItem (IProgressMonitor monitor, string fileName, MSBuildFileFormat expectedFormat, string itemGuid)
{
MSBuildProjectHandler handler = new MSBuildProjectHandler (Guid, Import, itemGuid);
return handler.Load (monitor, fileName, expectedFormat, null, null);
}
示例9: LoadSolutionItem
public override SolutionEntityItem LoadSolutionItem (IProgressMonitor monitor, string fileName, MSBuildFileFormat expectedFormat, string itemGuid)
{
MSBuildProjectHandler handler = CreateHandler<MSBuildProjectHandler> (fileName, itemGuid);
return handler.Load (monitor, fileName, expectedFormat, null, ItemType);
}
示例10: SetTargetFormat
internal void SetTargetFormat (MSBuildFileFormat targetFormat)
{
this.targetFormat = targetFormat;
}
示例11: LoadSolution
//ExtendedProperties
// Per config
// Platform : Eg. Any CPU
// SolutionConfigurationPlatforms
//
SolutionFolder LoadSolution (Solution sol, string fileName, MSBuildFileFormat format, IProgressMonitor monitor)
{
string headerComment;
string version = GetSlnFileVersion (fileName, out headerComment);
ListDictionary globals = null;
SolutionFolder folder = null;
SlnData data = null;
List<Section> projectSections = null;
List<string> lines = null;
FileFormat projectFormat = Services.ProjectService.FileFormats.GetFileFormat (format);
monitor.BeginTask (GettextCatalog.GetString ("Loading solution: {0}", fileName), 1);
//Parse the .sln file
using (StreamReader reader = new StreamReader(fileName)) {
sol.FileName = fileName;
sol.ConvertToFormat (projectFormat, false);
folder = sol.RootFolder;
sol.Version = "0.1"; //FIXME:
data = new SlnData ();
folder.ExtendedProperties [typeof (SlnFileFormat)] = data;
data.VersionString = version;
data.HeaderComment = headerComment;
string s = null;
projectSections = new List<Section> ();
lines = new List<string> ();
globals = new ListDictionary ();
//Parse
while (reader.Peek () >= 0) {
s = GetNextLine (reader, lines).Trim ();
if (String.Compare (s, "Global", true) == 0) {
ParseGlobal (reader, lines, globals);
continue;
}
if (s.StartsWith ("Project")) {
Section sec = new Section ();
projectSections.Add (sec);
sec.Start = lines.Count - 1;
int e = ReadUntil ("EndProject", reader, lines);
sec.Count = (e < 0) ? 1 : (e - sec.Start + 1);
continue;
}
}
}
monitor.BeginTask("Loading projects ..", projectSections.Count + 1);
Dictionary<string, SolutionItem> items = new Dictionary<string, SolutionItem> ();
List<SolutionItem> sortedList = new List<SolutionItem> ();
foreach (Section sec in projectSections) {
monitor.Step (1);
Match match = ProjectRegex.Match (lines [sec.Start]);
if (!match.Success) {
LoggingService.LogDebug (GettextCatalog.GetString (
"Invalid Project definition on line number #{0} in file '{1}'. Ignoring.",
sec.Start + 1,
fileName));
continue;
}
try {
// Valid guid?
new Guid (match.Groups [1].Value);
} catch (FormatException) {
//Use default guid as projectGuid
LoggingService.LogDebug (GettextCatalog.GetString (
"Invalid Project type guid '{0}' on line #{1}. Ignoring.",
match.Groups [1].Value,
sec.Start + 1));
continue;
}
string projTypeGuid = match.Groups [1].Value.ToUpper ();
string projectName = match.Groups [2].Value;
string projectPath = match.Groups [3].Value;
string projectGuid = match.Groups [4].Value;
if (projTypeGuid == MSBuildProjectService.FolderTypeGuid) {
//Solution folder
SolutionFolder sfolder = new SolutionFolder ();
sfolder.Name = projectName;
MSBuildProjectService.InitializeItemHandler (sfolder);
MSBuildProjectService.SetId (sfolder, projectGuid);
List<string> projLines = lines.GetRange (sec.Start + 1, sec.Count - 2);
DeserializeSolutionItem (sol, sfolder, projLines);
foreach (string f in ReadFolderFiles (projLines))
//.........这里部分代码省略.........
示例12: UpdateVersion
public void UpdateVersion (MSBuildFileFormat format)
{
VersionString = format.SlnVersion;
headerComment = "# " + format.ProductDescription;
}
示例13: LoadSolutionItem
public override SolutionEntityItem LoadSolutionItem (IProgressMonitor monitor, string fileName, MSBuildFileFormat expectedFormat, string itemGuid)
{
MSBuildProjectHandler handler = CreateHandler<MSBuildProjectHandler> (fileName, itemGuid);
handler.SetCustomResourceHandler (GetResourceHandler ());
return handler.Load (monitor, fileName, expectedFormat, language, null);
}
示例14: LoadSolutionItem
public override SolutionEntityItem LoadSolutionItem(IProgressMonitor monitor, string fileName, MSBuildFileFormat expectedFormat, string itemGuid)
{
return PackageJsonParser.ReadPackageInformation(new FilePath(fileName), monitor);
}
示例15: ReadFile
//Reader
public object ReadFile (string fileName, MSBuildFileFormat format, IProgressMonitor monitor)
{
if (fileName == null || monitor == null)
return null;
Solution sol;
try {
ProjectExtensionUtil.BeginLoadOperation ();
sol = new Solution ();
monitor.BeginTask (string.Format (GettextCatalog.GetString ("Loading solution: {0}"), fileName), 1);
var projectLoadMonitor = monitor as IProjectLoadProgressMonitor;
if (projectLoadMonitor != null)
projectLoadMonitor.CurrentSolution = sol;
LoadSolution (sol, fileName, format, monitor);
} catch (Exception ex) {
monitor.ReportError (GettextCatalog.GetString ("Could not load solution: {0}", fileName), ex);
throw;
} finally {
ProjectExtensionUtil.EndLoadOperation ();
monitor.EndTask ();
}
return sol;
}