Fix bug #517974.
commit694ae110c42898980b65d0c31de4c6fd113fd6ae
authorankit <ankit@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Tue, 21 Jul 2009 20:20:26 +0000 (21 20:20 +0000)
committerankit <ankit@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Tue, 21 Jul 2009 20:20:26 +0000 (21 20:20 +0000)
tree38163a7dd36b0f1809c11669af0dec30bb8ab848
parentda2aae3ec0c7caf3a5be20b9ba0eccc539562164
Fix bug #517974.
In class/Microsoft.Build.Tasks:

* Makefile: Add System.Core .

In class/Microsoft.Build.Tasks/Microsoft.Build.Tasks:

Fix bug #517974.
* ResolvedReference.cs (AssemblyName): New.
(IsPrimary): New. Primary (eg. specified in the project file) or
dependent reference.
(FoundInSearchPathAsString): New.
* AssemblyResolver.cs (GetResolvedReference): Add a 'assembly name'
param for the new field in ResolvedReference.
(AssemblyNamesCompatible): Fix the check for public key token.
Track api changes.

* ResolveAssemblyReference.cs: Keep track of resolved assemblies,
prevent duplicate references and other files.
Process dependencies after resolving all the primary references.
Search for dependencies in parent assembly's dir first and then
the specified search paths.
Detect assembly version conflicts and try to resolve.
Improve logged messages.
(PrimaryReference): New.
(ResolveAssemblyReferenceHelper.AddUniqueFile): New extension method.

In tools/xbuild:

* xbuild.Microsoft.CSharp.targets (Csc.References): Remove
"@(ChildProjectReferences)" as it gets resolved earlier
and is part of @(ResolvedFiles).

In tools/xbuild/tests:

* standalone/Project01: Add references to two "external" assemblies
with dependencies.
* standalone/Project01/Program.cs: Add references in code to the new
assemblies, to ensure that they are required for compilation.

git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mcs@138329 e3ebcda4-bce8-0310-ba0a-eca2169e7518
15 files changed:
class/Microsoft.Build.Tasks/ChangeLog
class/Microsoft.Build.Tasks/Makefile
class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/AssemblyResolver.cs
class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ChangeLog
class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs
class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolvedReference.cs
tools/xbuild/ChangeLog
tools/xbuild/tests/ChangeLog
tools/xbuild/tests/standalone/Project01/Project01/Main.csproj
tools/xbuild/tests/standalone/Project01/Project01/Program.cs
tools/xbuild/tests/standalone/Project01/Project01/asm1/abc.cs [new file with mode: 0644]
tools/xbuild/tests/standalone/Project01/Project01/asm1/foo.cs [new file with mode: 0644]
tools/xbuild/tests/standalone/Project01/Project01/asm2/bar.cs [new file with mode: 0644]
tools/xbuild/tests/standalone/Project01/final-outputs.txt
tools/xbuild/xbuild/Microsoft.CSharp.targets