summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-09-04 20:23:22 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2008-09-04 20:23:22 -0700
commitb29af2a2523bf77a1fee824f14511c3c7a938d9f (patch)
treebe05c76166df63ad47283cbb6f8dd06eb55c8b01 /src
parent1509071b270cf082d39ae07cb0e95547f3e4f84d (diff)
parent796612e4b13fa5af0a9b0431fe2b9ed6293d011d (diff)
downloadDotNetOpenAuth-b29af2a2523bf77a1fee824f14511c3c7a938d9f.zip
DotNetOpenAuth-b29af2a2523bf77a1fee824f14511c3c7a938d9f.tar.gz
DotNetOpenAuth-b29af2a2523bf77a1fee824f14511c3c7a938d9f.tar.bz2
Merge branch 'v2.2' into v2.3
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenId.BuildTasks/ChangeAssemblyReference.cs47
-rw-r--r--src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj3
2 files changed, 49 insertions, 1 deletions
diff --git a/src/DotNetOpenId.BuildTasks/ChangeAssemblyReference.cs b/src/DotNetOpenId.BuildTasks/ChangeAssemblyReference.cs
new file mode 100644
index 0000000..af0ab17
--- /dev/null
+++ b/src/DotNetOpenId.BuildTasks/ChangeAssemblyReference.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Linq;
+using System.IO;
+using System.Xml;
+
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+using Microsoft.Build.BuildEngine;
+
+namespace DotNetOpenId.BuildTasks {
+ /// <summary>
+ /// Replaces Reference items HintPaths in a set of projects.
+ /// </summary>
+ public class ChangeAssemblyReference : Task {
+ /// <summary>
+ /// The projects to alter.
+ /// </summary>
+ [Required]
+ public ITaskItem[] Projects { get; set; }
+ /// <summary>
+ /// The project reference to remove.
+ /// </summary>
+ [Required]
+ public string OldReference { get; set; }
+ /// <summary>
+ /// The assembly reference to add.
+ /// </summary>
+ [Required]
+ public string NewReference { get; set; }
+
+ const string msbuildNamespace = "http://schemas.microsoft.com/developer/msbuild/2003";
+ public override bool Execute() {
+ foreach (var project in Projects) {
+ Project doc = new Project();
+ doc.Load(project.ItemSpec);
+
+ var reference = doc.GetEvaluatedItemsByName("Reference").OfType<BuildItem>().
+ Where(item => string.Equals(item.GetMetadata("HintPath"), OldReference, StringComparison.OrdinalIgnoreCase)).Single();
+ reference.SetMetadata("HintPath", NewReference);
+
+ doc.Save(project.ItemSpec);
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj b/src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj
index 6b92a62..4cc625e 100644
--- a/src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj
+++ b/src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj
@@ -3,7 +3,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.21022</ProductVersion>
+ <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{AC231A51-EF60-437C-A33F-AF8ADEB8EB74}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -46,6 +46,7 @@
<ItemGroup>
<Compile Include="ChangeProjectReferenceToAssemblyReference.cs" />
<Compile Include="CompareFiles.cs" />
+ <Compile Include="ChangeAssemblyReference.cs" />
<Compile Include="GetBuildVersion.cs" />
<Compile Include="SetEnvironmentVariable.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />