diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-09-04 20:23:22 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2008-09-04 20:23:22 -0700 |
commit | b29af2a2523bf77a1fee824f14511c3c7a938d9f (patch) | |
tree | be05c76166df63ad47283cbb6f8dd06eb55c8b01 /src | |
parent | 1509071b270cf082d39ae07cb0e95547f3e4f84d (diff) | |
parent | 796612e4b13fa5af0a9b0431fe2b9ed6293d011d (diff) | |
download | DotNetOpenAuth-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.cs | 47 | ||||
-rw-r--r-- | src/DotNetOpenId.BuildTasks/DotNetOpenId.BuildTasks.csproj | 3 |
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" />
|