diff options
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.dll | bin | 104960 -> 105984 bytes | |||
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.pdb | bin | 257536 -> 257536 bytes | |||
-rw-r--r-- | projecttemplates/projecttemplates.proj | 25 | ||||
-rw-r--r-- | src/DotNetOpenAuth.BuildTasks/ChangeProjectReferenceToAssemblyReference.cs | 13 | ||||
-rw-r--r-- | tools/DotNetOpenAuth.props | 3 | ||||
-rw-r--r-- | tools/drop.proj | 2 |
6 files changed, 28 insertions, 15 deletions
diff --git a/lib/DotNetOpenAuth.BuildTasks.dll b/lib/DotNetOpenAuth.BuildTasks.dll Binary files differindex 3186ff6..6889add 100644 --- a/lib/DotNetOpenAuth.BuildTasks.dll +++ b/lib/DotNetOpenAuth.BuildTasks.dll diff --git a/lib/DotNetOpenAuth.BuildTasks.pdb b/lib/DotNetOpenAuth.BuildTasks.pdb Binary files differindex 3de249b..4026aa5 100644 --- a/lib/DotNetOpenAuth.BuildTasks.pdb +++ b/lib/DotNetOpenAuth.BuildTasks.pdb diff --git a/projecttemplates/projecttemplates.proj b/projecttemplates/projecttemplates.proj index d3030bf..3046553 100644 --- a/projecttemplates/projecttemplates.proj +++ b/projecttemplates/projecttemplates.proj @@ -20,9 +20,12 @@ $(LayoutDependsOn); </LayoutDependsOn> </PropertyGroup> - + <ItemGroup> <ProjectTemplates Include="**\*.*proj" Exclude="$(MSBuildThisFile)" /> + + <ProjectReferencesToRemove Include="..\RelyingPartyDatabase\RelyingPartyDatabase.dbproj"/> + <AssemblyReferencesToReplaceWith Include="REMOVE" /> </ItemGroup> <Target Name="Validate"> @@ -85,9 +88,9 @@ </CopyWithTokenSubstitution> <ChangeProjectReferenceToAssemblyReference Projects="@(CopiedProjectFiles)" - Condition=" '%(Extension)' == '.csproj' " - ProjectReferences="..\..\src\$(ProductName)\$(ProductName).csproj;..\RelyingPartyDatabase\RelyingPartyDatabase.dbproj" - References="Lib\$(ProductName).dll;REMOVE" /> + Condition=" '%(CopiedProjectFiles.Extension)' == '.csproj' " + ProjectReferences="@(ProjectReferencesToRemove)" + References="@(AssemblyReferencesToReplaceWith)" /> <FixupReferenceHintPaths Projects="@(CopiedProjectFiles)" References="@(FixupReferenceAssemblies)" @@ -133,12 +136,12 @@ <VS2010ProjectTemplateZipFiles Include="@(TopLevelVS2010ProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" /> </ItemGroup> - <Copy - SourceFiles="@(ProjectTemplatesSource)" - DestinationFiles="@(ProjectTemplatesLayout)" + <Copy + SourceFiles="@(ProjectTemplatesSource)" + DestinationFiles="@(ProjectTemplatesLayout)" SkipUnchangedFiles="true" /> - <CopyWithTokenSubstitution - SourceFiles="@(TemplateProjectItemsForTransformSource)" + <CopyWithTokenSubstitution + SourceFiles="@(TemplateProjectItemsForTransformSource)" DestinationFiles="@(TemplateProjectItemsForTransformLayout)" /> <ItemGroup> @@ -190,7 +193,7 @@ ZipLevel="$(ZipLevel)" /> </Target> - + <Target Name="Layout2008" DependsOnTargets="Layout"> <ItemGroup> <ProjectTemplates2008Source Include="$(ProjectTemplatesLayoutPath)**" Exclude="$(ProjectTemplatesLayoutPath)*.zip" /> @@ -214,7 +217,7 @@ InPlaceDowngrade="true" /> - <Purge Directories="$(ProjectTemplates2008LayoutPath)" + <Purge Directories="$(ProjectTemplates2008LayoutPath)" IntendedFiles="@(ProjectTemplates2008Layout);@(VS2008ProjectTemplateZipFiles)" /> </Target> diff --git a/src/DotNetOpenAuth.BuildTasks/ChangeProjectReferenceToAssemblyReference.cs b/src/DotNetOpenAuth.BuildTasks/ChangeProjectReferenceToAssemblyReference.cs index fb42ade..a25701d 100644 --- a/src/DotNetOpenAuth.BuildTasks/ChangeProjectReferenceToAssemblyReference.cs +++ b/src/DotNetOpenAuth.BuildTasks/ChangeProjectReferenceToAssemblyReference.cs @@ -26,7 +26,7 @@ public ITaskItem[] ProjectReferences { get; set; } /// <summary> - /// The assembly references to add. + /// The assembly references to replace removed project references with. /// </summary> [Required] public ITaskItem[] References { get; set; } @@ -34,6 +34,9 @@ public override bool Execute() { if (this.ProjectReferences.Length != this.References.Length) { this.Log.LogError("ProjectReferences and References arrays do not have matching lengths."); + this.Log.LogError("ProjectReferences contents ({0} elements): {1}", this.ProjectReferences.Length, String.Join<ITaskItem>(";", this.ProjectReferences)); + this.Log.LogError("References contents ({0} elements): {1}", this.References.Length, String.Join<ITaskItem>(";", this.References)); + return false; } foreach (var project in Projects) { @@ -50,8 +53,12 @@ doc.RemoveItem(matchingReference.Remove); if (matchingReference.Add.ItemSpec != "REMOVE") { this.Log.LogMessage("Adding assembly reference to \"{0}\" to \"{1}\".", matchingReference.Add.ItemSpec, project.ItemSpec); - var newReference = doc.AddNewItem("Reference", Path.GetFileNameWithoutExtension(matchingReference.Add.ItemSpec), true); - newReference.SetMetadata("HintPath", matchingReference.Add.ItemSpec); + + string newItemSpec = Path.GetFileNameWithoutExtension(matchingReference.Add.ItemSpec); + if (!doc.GetEvaluatedItemsByName("Reference").OfType<BuildItem>().Any(bi => String.Equals(bi.Include, newItemSpec, StringComparison.OrdinalIgnoreCase))) { + var newReference = doc.AddNewItem("Reference", newItemSpec, true); + newReference.SetMetadata("HintPath", matchingReference.Add.ItemSpec); + } } } diff --git a/tools/DotNetOpenAuth.props b/tools/DotNetOpenAuth.props index 049d1cc..33ba4c1 100644 --- a/tools/DotNetOpenAuth.props +++ b/tools/DotNetOpenAuth.props @@ -64,6 +64,9 @@ " /> <ProductProjects Include="@(ProductProjectNames->'$(ProjectRoot)src\%(Identity)\%(Identity).csproj')"/> + <ProjectReferencesToRemove Include="@(ProductProjectNames->'..\..\src\%(Identity)\%(Identity).csproj')" /> + <AssemblyReferencesToReplaceWith Include="@(ProjectReferencesToRemove->'..\..\Bin\$(ProductName).dll')" /> + <SignDependsOn Include="Build" Condition=" '$(SuppressBuildTarget)' != 'true' " /> <ILMergeInputAssemblies Condition=" '$(ClrVersion)' == '2' " Include="$(ProjectRoot)lib\Microsoft.Contracts.dll" /> diff --git a/tools/drop.proj b/tools/drop.proj index 8b34461..4883929 100644 --- a/tools/drop.proj +++ b/tools/drop.proj @@ -137,7 +137,7 @@ RemoveImportsStartingWith="%24(ProjectRoot)tools\" AddReferences="Microsoft.Contracts"/> <ChangeProjectReferenceToAssemblyReference Projects="@(SampleProjectTargets)" - ProjectReferences="..\..\src\$(ProductName)\$(ProductName).csproj" References="..\..\Bin\$(ProductName).dll" /> + ProjectReferences="@(ProjectReferencesToRemove)" References="@(AssemblyReferencesToReplaceWith)" /> <DowngradeProjects Projects="@(SampleProjectTargets);@(SampleSolutionTargets)" DowngradeMvc2ToMvc1="$(DowngradeMvc2ToMvc1)" |