Add support for ToolsVersion and correctly build msbuild+xbuild assemblies
[mono.git] / mcs / class / Microsoft.Build.Engine / Test / Microsoft.Build.BuildEngine / EngineTest.cs
index e18e464cb912243ba67439a832dae2bc1fa1ce1c..b64c1f5bcf141edbb791a8a7d34351e00b6118b0 100644 (file)
@@ -324,8 +324,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties1 ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                               + GetUsingTask ("MSBuild")
+                               + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1;2""/>
                <Message Text=""second""/>
@@ -333,9 +334,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                               + GetUsingTask ("MSBuild")
+                               + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -363,8 +364,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                public void TestGlobalProperties1a ()
                {
                        Directory.CreateDirectory ("Test/resources/foo");
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1;2""/>
                <Message Text=""second""/>
@@ -372,9 +374,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -401,8 +403,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties1b ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1;2""/>
                <Message Text=""second""/>
@@ -410,9 +413,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj""/>
@@ -439,8 +442,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties2 ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <MSBuild Projects=""first.proj"" Targets = ""2""/>
@@ -449,9 +453,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -478,8 +482,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties3 ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <CallTarget Targets=""Call2""/>
@@ -491,9 +496,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -521,8 +526,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties4 ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <CallTarget Targets=""Call2""/>
@@ -534,9 +540,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -568,8 +574,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties4a ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <CallTarget Targets=""Call2""/>
@@ -581,9 +588,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -615,8 +622,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties4b ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <CallTarget Targets=""Call2""/>
@@ -628,9 +636,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -666,8 +674,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestGlobalProperties4c ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild"" AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name=""main"">
                <MSBuild Projects=""first.proj"" Targets = ""1""/>
                <CallTarget Targets=""Call2""/>
@@ -679,9 +688,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
        </Target>
 </Project>";
 
-                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-               AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
+                       string firstProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
        <Target Name = ""1"">
                <MSBuild Projects=""second.proj"" Properties=""foo=bar""/>
                <MSBuild Projects=""second.proj"" Targets = ""TargetB"" Properties=""foo=foofoo""/>
@@ -714,10 +723,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                [Test]
                public void TestMSBuildOutputs ()
                {
-                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
-                       <UsingTask TaskName=""Microsoft.Build.Tasks.MSBuild""
-                                       AssemblyName=""Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" />
-
+                       string mainProject = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">"
+                                       + GetUsingTask ("MSBuild")
+                                       + @"
         <ItemGroup>
                 <ProjectRef Include=""first.proj"">
                         <Prop3>value</Prop3>
@@ -889,6 +897,9 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                        }
                }
 
-
+               public static string GetUsingTask (string taskName)
+               {
+                       return "<UsingTask TaskName='Microsoft.Build.Tasks." + taskName + "' AssemblyFile='" + Consts.GetTasksAsmPath () + "' />";
+               }
        }
 }