diff options
Diffstat (limited to 'src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs')
-rw-r--r-- | src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs b/src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs index 2188cd0..2f09583 100644 --- a/src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs +++ b/src/DotNetOpenAuth.BuildTasks/DowngradeProjects.cs @@ -25,6 +25,14 @@ namespace DotNetOpenAuth.BuildTasks { [Required] public ITaskItem[] Projects { get; set; } + /// <summary> + /// Gets or sets a value indicating whether project files are downgraded and re-saved to the same paths. + /// </summary> + public bool InPlaceDowngrade { get; set; } + + /// <summary> + /// Gets or sets the set of newly created project files. Empty if <see cref="InPlaceDowngrade"/> is <c>true</c>. + /// </summary> [Output] public ITaskItem[] DowngradedProjects { get; set; } @@ -44,9 +52,12 @@ namespace DotNetOpenAuth.BuildTasks { switch (GetClassification(taskItem)) { case ProjectClassification.VS2010Project: case ProjectClassification.VS2010Solution: - string projectNameForVS2008 = Path.Combine( - Path.GetDirectoryName(taskItem.ItemSpec), - Path.GetFileNameWithoutExtension(taskItem.ItemSpec) + "-vs2008" + Path.GetExtension(taskItem.ItemSpec)); + string projectNameForVS2008 = InPlaceDowngrade + ? taskItem.ItemSpec + : Path.Combine( + Path.GetDirectoryName(taskItem.ItemSpec), + Path.GetFileNameWithoutExtension(taskItem.ItemSpec) + "-vs2008" + + Path.GetExtension(taskItem.ItemSpec)); newProjectToOldProjectMapping[taskItem.ItemSpec] = projectNameForVS2008; break; } @@ -131,7 +142,11 @@ namespace DotNetOpenAuth.BuildTasks { } } - this.DowngradedProjects = createdProjectFiles.ToArray(); + if (InPlaceDowngrade) { + this.DowngradedProjects = new ITaskItem[0]; + } else { + this.DowngradedProjects = createdProjectFiles.ToArray(); + } return !this.Log.HasLoggedErrors; } |