diff --git a/build.cake b/build.cake
index 412337aa43..0623dfff6b 100644
--- a/build.cake
+++ b/build.cake
@@ -336,6 +336,40 @@ Task("CreateMSBuildFolder")
CopyDotNetHostResolver(env, "linux", "x64", "libhostfxr.so", sdkResolverTargetFolder, copyToArchSpecificFolder: false);
}
+ // Copy content of NuGet.Build.Tasks
+ var nugetBuildTasksFolder = CombinePaths(env.Folders.Tools, "NuGet.Build.Tasks");
+ var nugetBuildTasksBinariesFolder = CombinePaths(nugetBuildTasksFolder, "lib", "net46");
+ var nugetBuildTasksTargetsFolder = CombinePaths(nugetBuildTasksFolder, "runtimes", "any", "native");
+
+ FileHelper.Copy(
+ source: CombinePaths(nugetBuildTasksBinariesFolder, "NuGet.Build.Tasks.dll"),
+ destination: CombinePaths(msbuild15BinTargetFolder, "NuGet.Build.Tasks.dll"));
+
+ FileHelper.Copy(
+ source: CombinePaths(nugetBuildTasksTargetsFolder, "NuGet.targets"),
+ destination: CombinePaths(msbuild15BinTargetFolder, "NuGet.targets"));
+
+ // Copy dependencies of NuGet.Build.Tasks
+ var nugetPackages = new []
+ {
+ "NuGet.Commands",
+ "NuGet.Common",
+ "NuGet.Configuration",
+ "NuGet.Frameworks",
+ "NuGet.ProjectModel",
+ "NuGet.Protocol",
+ "NuGet.Versioning"
+ };
+
+ foreach (var nugetPackage in nugetPackages)
+ {
+ var binaryName = nugetPackage + ".dll";
+
+ FileHelper.Copy(
+ source: CombinePaths(env.Folders.Tools, nugetPackage, "lib", "net46", binaryName),
+ destination: CombinePaths(msbuild15BinTargetFolder, binaryName));
+ }
+
// Copy content of Microsoft.Net.Compilers
Information("Copying Microsoft.Net.Compilers...");
var compilersSourceFolder = CombinePaths(env.Folders.Tools, "Microsoft.Net.Compilers", "tools");
@@ -632,8 +666,11 @@ Task("Test")
else
{
// Copy the Mono-built Microsoft.Build.* binaries to the test folder.
+ // This is necessary to work around a Mono bug that is exasperated by xUnit.
DirectoryHelper.Copy($"{env.Folders.MonoMSBuildLib}", instanceFolder);
+ DeleteUnnecessaryAssemblies(instanceFolder);
+
var runScript = CombinePaths(env.Folders.Mono, "run");
// By default, the run script launches OmniSharp. To launch our Mono runtime
@@ -649,6 +686,25 @@ Task("Test")
}
});
+///
+/// Delete assemblies that are included in our Mono package.
+///
+void DeleteUnnecessaryAssemblies(string folder)
+{
+ FileHelper.Delete(CombinePaths(folder, "System.AppContext.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Numerics.Vectors.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Runtime.InteropServices.RuntimeInformation.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.ComponentModel.Primitives.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.ComponentModel.TypeConverter.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Console.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.IO.FileSystem.Primitives.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.IO.FileSystem.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Security.Cryptography.Encoding.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Security.Cryptography.Primitives.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Security.Cryptography.X509Certificates.dll"));
+ FileHelper.Delete(CombinePaths(folder, "System.Threading.Thread.dll"));
+}
+
void CopyMonoBuild(BuildEnvironment env, string sourceFolder, string outputFolder)
{
DirectoryHelper.Copy(sourceFolder, outputFolder, copySubDirectories: false);
@@ -657,18 +713,7 @@ void CopyMonoBuild(BuildEnvironment env, string sourceFolder, string outputFolde
DirectoryHelper.Copy($"{env.Folders.MSBuild}", CombinePaths(outputFolder, "msbuild"));
// Included in Mono
- FileHelper.Delete(CombinePaths(outputFolder, "System.AppContext.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Numerics.Vectors.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Runtime.InteropServices.RuntimeInformation.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.ComponentModel.Primitives.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.ComponentModel.TypeConverter.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Console.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.IO.FileSystem.Primitives.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.IO.FileSystem.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Security.Cryptography.Encoding.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Security.Cryptography.Primitives.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Security.Cryptography.X509Certificates.dll"));
- FileHelper.Delete(CombinePaths(outputFolder, "System.Threading.Thread.dll"));
+ DeleteUnnecessaryAssemblies(outputFolder);
}
string PublishMonoBuild(string project, BuildEnvironment env, BuildPlan plan, string configuration)
diff --git a/build.json b/build.json
index 6c46a1920c..d5ec7b24df 100644
--- a/build.json
+++ b/build.json
@@ -12,8 +12,8 @@
"MonoRuntimeLinux32": "mono.linux-x86-5.10.1.20.zip",
"MonoRuntimeLinux64": "mono.linux-x86_64-5.10.1.20.zip",
"MonoFramework": "framework-5.10.1.20.zip",
- "MonoMSBuildRuntime": "Microsoft.Build.Runtime.Mono-alpha6.zip",
- "MonoMSBuildLib": "Microsoft.Build.Lib.Mono-alpha6.zip",
+ "MonoMSBuildRuntime": "Microsoft.Build.Runtime.Mono-mono-5.10.1.20.zip",
+ "MonoMSBuildLib": "Microsoft.Build.Lib.Mono-mono-5.10.1.20.zip",
"HostProjects": [
"OmniSharp.Stdio",
"OmniSharp.Http"
diff --git a/build/Packages.props b/build/Packages.props
index 31dfa036e8..d0376c7830 100644
--- a/build/Packages.props
+++ b/build/Packages.props
@@ -9,10 +9,10 @@
1.1.0
1.1.0
1.1.0
- 15.3.409
- 15.3.409
- 15.3.409
- 15.3.409
+ 15.6.82
+ 15.6.82
+ 15.6.82
+ 15.6.82
2.7.0
2.7.0
2.7.0
diff --git a/tools/packages.config b/tools/packages.config
index 2333d9e0d5..4f4744db46 100644
--- a/tools/packages.config
+++ b/tools/packages.config
@@ -1,13 +1,21 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+