diff --git a/NuGet.Config b/NuGet.Config index 73b213125..6600c4f02 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -5,6 +5,7 @@ + diff --git a/build.proj b/build.proj index 04246e6d5..133cfa712 100644 --- a/build.proj +++ b/build.proj @@ -26,13 +26,21 @@ - - + + + + + + + + Outputs="$(CLIBuildDll)" + DependsOnTargets="MSBuildWorkaroundTarget"> @@ -40,7 +48,6 @@ - @@ -51,13 +58,10 @@ - - - - - \ No newline at end of file + + diff --git a/build/Microsoft.DotNet.Cli.Package.targets b/build/Microsoft.DotNet.Cli.Package.targets new file mode 100644 index 000000000..0ca7a1758 --- /dev/null +++ b/build/Microsoft.DotNet.Cli.Package.targets @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/build/Microsoft.DotNet.Cli.Prepare.targets b/build/Microsoft.DotNet.Cli.Prepare.targets index 7de75544f..f999f3c79 100644 --- a/build/Microsoft.DotNet.Cli.Prepare.targets +++ b/build/Microsoft.DotNet.Cli.Prepare.targets @@ -25,6 +25,7 @@ $(BaseOutputDirectory)/stage2compilation $(BaseOutputDirectory)/intermediate $(BaseOutputDirectory)/packages + $(BaseOutputDirectory)/stage2symbols @@ -46,6 +47,10 @@ $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg $(NugetVersion) + + $(VersionMajor).$(VersionMinor).$(VersionPatch)-preview3-$(CommitCount) + $(VersionMajor).$(VersionMinor).$(VersionPatch)-rc4-$(CommitCount) + $(VersionMajor).$(VersionMinor).1-beta-$(CommitCount) .zip .tar.gz @@ -61,18 +66,15 @@ $(Rid) $(OSName)-$(Architecture) - - $(PackagesDirectory)/dotnet-sdk-$(ProductMonikerRid).$(SdkVersion)$(ArchiveExtension) - $(PackagesDirectory)/dotnet-sdk-$(ProductMonikerRid).$(SdkVersion)$(InstallerExtension) + dotnet-sdk + dotnet-sdk-debug + dotnet-dev + dotnet-sharedframework-sdk - $(PackagesDirectory)/dotnet-dev-$(ProductMonikerRid).$(SdkVersion)$(ArchiveExtension) - $(PackagesDirectory)/dotnet-dev-$(ProductMonikerRid).$(SdkVersion)$(BundleExtension) - - $(PackagesDirectory)/dotnet-sharedframework-sdk-$(ProductMonikerRid).$(SdkVersion)$(ArchiveExtension) - $(PackagesDirectory)/dotnet-sharedframework-sdk-$(ProductMonikerRid).$(SdkVersion)$(BundleExtension) - - $(PackagesDirectory)/dotnet-sdk-debug-$(ProductMonikerRid).$(SdkVersion)$(ArchiveExtension) - $(PackagesDirectory)/dotnet-sdk-debug-$(ProductMonikerRid).$(SdkVersion)$(InstallerExtension) + $(ArtifactNameSdk)-$(ProductMonikerRid).$(SdkVersion) + $(ArtifactNameSdkDebug)-$(ProductMonikerRid).$(SdkVersion) + $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(ProductMonikerRid).$(SdkVersion) + $(ArtifactNameCombinedFrameworkSdk)-$(ProductMonikerRid).$(SdkVersion) $(PackagesDirectory)/dotnet-host-$(ProductMonikerRid).$(SharedHostVersion)$(ArchiveExtension) diff --git a/build/package/Microsoft.DotNet.Cli.Archive.targets b/build/package/Microsoft.DotNet.Cli.Archive.targets new file mode 100644 index 000000000..0caa18de8 --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Archive.targets @@ -0,0 +1,32 @@ + + + + + + + + $(PackagesDirectory) + + + + + + + + + + + + + + + + + diff --git a/build/package/Microsoft.DotNet.Cli.Installer.DEB.targets b/build/package/Microsoft.DotNet.Cli.Installer.DEB.targets new file mode 100644 index 000000000..13bf3b7df --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Installer.DEB.targets @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/build/package/Microsoft.DotNet.Cli.Installer.MSI.targets b/build/package/Microsoft.DotNet.Cli.Installer.MSI.targets new file mode 100644 index 000000000..afcc2a4a2 --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Installer.MSI.targets @@ -0,0 +1,165 @@ + + + + + + + + + + + 3.10.2 + https://dotnetcli.blob.core.windows.net/build/wix/wix.$(WixVersion).zip + $(IntermediateDirectory)/WixTools/$(WixVersion) + $(WixRoot)/WixTools.$(WixVersion).zip + $(WixRoot)/WixDownload.$(WixVersion).sentinel + + + + + $(PackagesDirectory) + + $(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)-engine.exe + + $(RepoRoot)/packaging/windows/clisdk/generatemsi.ps1 + $(RepoRoot)/packaging/windows/clisdk/generatebundle.ps1 + + $(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk)$(InstallerExtension) + $(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(BundleExtension) + + + $(SharedFrameworkInstallerFile) + $(HostFxrInstallerFile) + $(SharedHostInstallerFile) + + + + + + + + + + + + + + + + + + $(RepoRoot)/test/Installer/testmsi.ps1 + $(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk).MsiTested.sentinel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/package/Microsoft.DotNet.Cli.Installer.PKG.targets b/build/package/Microsoft.DotNet.Cli.Installer.PKG.targets new file mode 100644 index 000000000..fa1ea1aa4 --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Installer.PKG.targets @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/build/package/Microsoft.DotNet.Cli.Layout.targets b/build/package/Microsoft.DotNet.Cli.Layout.targets new file mode 100644 index 000000000..4e975fba0 --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Layout.targets @@ -0,0 +1,69 @@ + + + + + + $(IntermediateDirectory)/layouts + + + + + + + + + + + + + $(LayoutDirectory)/$(ArtifactNameSdk) + $(LayoutDirectory)/$(ArtifactNameSdkDebug) + $(LayoutDirectory)/$(ArtifactNameCombinedHostHostFxrFrameworkSdk) + $(LayoutDirectory)/$(ArtifactNameCombinedFrameworkSdk) + + + + + + @(SdkLayoutInput) + @(SdkLayoutInput -> '$(SdkLayoutOutputDirectory)/$([MSBuild]::MakeRelative($(OutputDirectory), '%(Identity)'))') + $(ArtifactNameWithVersionSdk) + $(ArtifactNameSdk) + + + + @(SdkDebugLayoutInput) + @(SdkDebugLayoutInput -> '$(SdkDebugLayoutOutputDirectory)/$([MSBuild]::MakeRelative($(SymbolsOutputDirectory), '%(Identity)'))') + $(ArtifactNameWithVersionSdkDebug) + $(ArtifactNameSdkDebug) + + + + @(CombinedHostHostFxrFrameworkSdkInput) + @(CombinedHostHostFxrFrameworkSdkInput -> '$(CombinedHostHostFxrFrameworkSdkOutputDirectory)/$([MSBuild]::MakeRelative($(OutputDirectory), '%(Identity)'))') + $(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk) + $(ArtifactNameCombinedHostHostFxrFrameworkSdk) + + + + @(CombinedFrameworkSdkInput) + @(CombinedFrameworkSdkInput -> '$(CombinedFrameworkSdkOutputDirectory)/$([MSBuild]::MakeRelative($(OutputDirectory), '%(Identity)'))') + $(ArtifactNameWithVersionCombinedFrameworkSdk) + $(ArtifactNameCombinedFrameworkSdk) + + + + + + + + + + + + diff --git a/build/package/Microsoft.DotNet.Cli.Nupkg.targets b/build/package/Microsoft.DotNet.Cli.Nupkg.targets new file mode 100644 index 000000000..ad83caa56 --- /dev/null +++ b/build/package/Microsoft.DotNet.Cli.Nupkg.targets @@ -0,0 +1,69 @@ + + + + + + $(CommitCount) + $(RepoRoot)/src + $(Stage2CompilationDirectory)/forPackaging + $(PackagesDirectory) + + + + + Microsoft.DotNet.Cli.Utils + $(SdkProjectJsonVersion) + + + Microsoft.DotNet.Compiler.Common + $(SdkProjectJsonVersion) + + + Microsoft.DotNet.Files + $(SdkProjectJsonVersion) + + + Microsoft.DotNet.InternalAbstractions + $(DependencyModelAndInternalAbstractionsProjectJsonVersion) + + + Microsoft.DotNet.ProjectModel + $(ProjectModelProjectJsonVersion) + + + Microsoft.DotNet.ProjectModel.Loader + $(SdkProjectJsonVersion) + + + Microsoft.DotNet.ProjectModel.Workspaces + $(SdkProjectJsonVersion) + + + Microsoft.Extensions.DependencyModel + $(DependencyModelAndInternalAbstractionsProjectJsonVersion) + + + Microsoft.Extensions.Testing.Abstractions + $(SdkProjectJsonVersion) + + + + + + + + + + + + + diff --git a/build_projects/dotnet-cli-build/ArchiveDirectory.cs b/build_projects/dotnet-cli-build/ArchiveDirectory.cs new file mode 100644 index 000000000..11285ca04 --- /dev/null +++ b/build_projects/dotnet-cli-build/ArchiveDirectory.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Runtime.InteropServices; +using Microsoft.Build.Utilities; +using Microsoft.DotNet.Cli.Build.Framework; +using Microsoft.DotNet.InternalAbstractions; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; + +namespace Microsoft.DotNet.Cli.Build +{ + public class ArchiveDirectory : Task + { + [Required] + public string FileName { get; set; } + + [Required] + public string OutputDirectory { get; set; } + + [Required] + public string InputDirectory { get; set; } + + [Output] + public string OutputArchive { get; set; } + + public override bool Execute() + { + if (!Directory.Exists(InputDirectory)) + { + return true; + } + + if (CurrentPlatform.IsPlatform(BuildPlatform.Windows)) + { + OutputArchive = GenerateZip(); + } + else + { + OutputArchive = GenerateTarGz(); + } + + return true; + } + + public string GenerateZip() + { + var extension = ".zip"; + var outFile = Path.Combine(OutputDirectory, FileName + extension); + + CreateZipFromDirectory(InputDirectory, outFile); + + return outFile; + } + + public string GenerateTarGz() + { + var extension = ".tar.gz"; + var outFile = Path.Combine(OutputDirectory, FileName + extension); + + CreateTarGzFromDirectory(InputDirectory, outFile); + + return outFile; + } + + private static void CreateZipFromDirectory(string directory, string outputArchivePath) + { + FS.Mkdirp(Path.GetDirectoryName(outputArchivePath)); + + if (File.Exists(outputArchivePath)) + { + File.Delete(outputArchivePath); + } + + ZipFile.CreateFromDirectory(directory, outputArchivePath, CompressionLevel.Optimal, false); + } + + private static void CreateTarGzFromDirectory(string directory, string outputArchivePath) + { + FS.Mkdirp(Path.GetDirectoryName(outputArchivePath)); + + if (File.Exists(outputArchivePath)) + { + File.Delete(outputArchivePath); + } + + Cmd("tar", "-czf", outputArchivePath, "-C", directory, ".") + .Execute() + .EnsureSuccessful(); + } + } +} diff --git a/build_projects/dotnet-cli-build/DebTargets.cs b/build_projects/dotnet-cli-build/DebTargets.cs index 8af22d83d..cf5435cf8 100644 --- a/build_projects/dotnet-cli-build/DebTargets.cs +++ b/build_projects/dotnet-cli-build/DebTargets.cs @@ -7,15 +7,25 @@ using Microsoft.DotNet.Cli.Build.Framework; using Microsoft.DotNet.InternalAbstractions; using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; +using Microsoft.Build.Utilities; namespace Microsoft.DotNet.Cli.Build { - public class DebTargets + public class DebTargets : Task { + public override bool Execute() + { + BuildContext context = new BuildSetup("MSBuild").UseAllTargetsFromAssembly().CreateBuildContext(); + BuildTargetContext c = new BuildTargetContext(context, null, null); + + return GenerateDebs(c).Success; + } + public static BuildTargetResult GenerateDebs(BuildTargetContext c) { if (CurrentPlatform.IsPlatform(BuildPlatform.Ubuntu)) { + PrepareTargets.Init(c); GenerateSdkDeb(c); } diff --git a/build_projects/dotnet-cli-build/DecompressZip.cs b/build_projects/dotnet-cli-build/DecompressZip.cs new file mode 100644 index 000000000..6daaa97fb --- /dev/null +++ b/build_projects/dotnet-cli-build/DecompressZip.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Runtime.InteropServices; +using System.Net.Http; +using Microsoft.Build.Utilities; +using Microsoft.DotNet.Cli.Build.Framework; +using Microsoft.DotNet.InternalAbstractions; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; + +namespace Microsoft.DotNet.Cli.Build +{ + public class DecompressZip : Task + { + [Required] + public string InputZip { get; set; } + + [Required] + public string DestinationDirectory { get; set; } + + public override bool Execute() + { + FS.Mkdirp(DestinationDirectory); + + ZipFile.ExtractToDirectory(InputZip, DestinationDirectory); + + return true; + } + } +} diff --git a/build_projects/dotnet-cli-build/DownloadFile.cs b/build_projects/dotnet-cli-build/DownloadFile.cs new file mode 100644 index 000000000..c08a05590 --- /dev/null +++ b/build_projects/dotnet-cli-build/DownloadFile.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Runtime.InteropServices; +using System.Net.Http; +using Microsoft.Build.Utilities; +using Microsoft.DotNet.Cli.Build.Framework; +using Microsoft.DotNet.InternalAbstractions; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; + +namespace Microsoft.DotNet.Cli.Build +{ + public class DownloadFile : Task + { + [Required] + public string Uri { get; set; } + + [Required] + public string DestinationPath { get; set; } + + public bool Overwrite { get; set; } + + public override bool Execute() + { + FS.Mkdirp(Path.GetDirectoryName(DestinationPath)); + + if (File.Exists(DestinationPath) && !Overwrite) + { + return true; + } + + using (var httpClient = new HttpClient()) + { + var getTask = httpClient.GetStreamAsync(Uri); + + using (var outStream = File.Create(DestinationPath)) + { + getTask.Result.CopyTo(outStream); + } + } + + return true; + } + } +} diff --git a/build_projects/dotnet-cli-build/GenerateGuidFromName.cs b/build_projects/dotnet-cli-build/GenerateGuidFromName.cs new file mode 100644 index 000000000..9554b918a --- /dev/null +++ b/build_projects/dotnet-cli-build/GenerateGuidFromName.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Runtime.InteropServices; +using System.Net.Http; +using Microsoft.Build.Utilities; +using Microsoft.DotNet.Cli.Build.Framework; +using Microsoft.DotNet.InternalAbstractions; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; +using System.Security.Cryptography; + +using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; + +namespace Microsoft.DotNet.Cli.Build +{ + public class GenerateGuidFromName : Task + { + [Required] + public string Name { get; set; } + + [Output] + public string OutputGuid { get; set; } + + public override bool Execute() + { + OutputGuid = GenerateGuid(Name).ToString(); + + return true; + } + + public static Guid GenerateGuid(string name) + { + // Any fixed GUID will do for a namespace. + Guid namespaceId = new Guid("28F1468D-672B-489A-8E0C-7C5B3030630C"); + + using (SHA1 hasher = SHA1.Create()) + { + var nameBytes = System.Text.Encoding.UTF8.GetBytes(name ?? string.Empty); + var namespaceBytes = namespaceId.ToByteArray(); + + SwapGuidByteOrder(namespaceBytes); + + var streamToHash = new byte[namespaceBytes.Length + nameBytes.Length]; + + Array.Copy(namespaceBytes, streamToHash, namespaceBytes.Length); + Array.Copy(nameBytes, 0, streamToHash, namespaceBytes.Length, nameBytes.Length); + + var hashResult = hasher.ComputeHash(streamToHash); + + var res = new byte[16]; + + Array.Copy(hashResult, res, res.Length); + + unchecked { res[6] = (byte)(0x50 | (res[6] & 0x0F)); } + unchecked { res[8] = (byte)(0x40 | (res[8] & 0x3F)); } + + SwapGuidByteOrder(res); + + return new Guid(res); + } + } + + // Do a byte order swap, .NET GUIDs store multi byte components in little + // endian. + private static void SwapGuidByteOrder(byte[] b) + { + Swap(b, 0, 3); + Swap(b, 1, 2); + Swap(b, 5, 6); + Swap(b, 7, 8); + } + + private static void Swap(byte[] b, int x, int y) + { + byte t = b[x]; + b[x] = b[y]; + b[y] = t; + } + } +} diff --git a/build_projects/dotnet-cli-build/MsiTargets.cs b/build_projects/dotnet-cli-build/MsiTargets.cs index a913a95bf..abb1d3da3 100644 --- a/build_projects/dotnet-cli-build/MsiTargets.cs +++ b/build_projects/dotnet-cli-build/MsiTargets.cs @@ -114,7 +114,7 @@ namespace Microsoft.DotNet.Cli.Build if (CurrentPlatform.IsPlatform(BuildPlatform.Windows)) { var cliSdkRoot = c.BuildContext.Get("CLISDKRoot"); - var upgradeCode = Utils.GenerateGuidFromName(SdkMsi).ToString().ToUpper(); + var upgradeCode = GenerateGuidFromName.GenerateGuid(SdkMsi).ToString().ToUpper(); var cliSdkBrandName = $"'{Monikers.CLISdkBrandName}'"; Cmd("powershell", "-NoProfile", "-NoLogo", @@ -131,7 +131,7 @@ namespace Microsoft.DotNet.Cli.Build { if (CurrentPlatform.IsPlatform(BuildPlatform.Windows)) { - var upgradeCode = Utils.GenerateGuidFromName(SdkBundle).ToString().ToUpper(); + var upgradeCode = GenerateGuidFromName.GenerateGuid(SdkBundle).ToString().ToUpper(); var cliSdkBrandName = $"'{Monikers.CLISdkBrandName}'"; Cmd("powershell", "-NoProfile", "-NoLogo", diff --git a/build_projects/dotnet-cli-build/PkgTargets.cs b/build_projects/dotnet-cli-build/PkgTargets.cs index aac8a54d0..c10bc2a33 100644 --- a/build_projects/dotnet-cli-build/PkgTargets.cs +++ b/build_projects/dotnet-cli-build/PkgTargets.cs @@ -7,10 +7,11 @@ using Microsoft.DotNet.Cli.Build.Framework; using Microsoft.DotNet.InternalAbstractions; using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers; +using Microsoft.Build.Utilities; namespace Microsoft.DotNet.Cli.Build { - public class PkgTargets + public class PkgTargets : Task { public static string PkgsIntermediateDir { get; set; } public static string SharedHostComponentId { get; set; } @@ -45,10 +46,19 @@ namespace Microsoft.DotNet.Cli.Build return c.Success(); } + public override bool Execute() + { + BuildContext context = new BuildSetup("MSBuild").UseAllTargetsFromAssembly().CreateBuildContext(); + BuildTargetContext c = new BuildTargetContext(context, null, null); + + return GeneratePkgs(c).Success; + } + public static BuildTargetResult GeneratePkgs(BuildTargetContext c) { if (CurrentPlatform.IsPlatform(BuildPlatform.OSX)) { + PrepareTargets.Init(c); InitPkg(c); GenerateCLISdkProductArchive(c); } diff --git a/build_projects/dotnet-cli-build/TestTargets.cs b/build_projects/dotnet-cli-build/TestTargets.cs index e1a54e55d..82a112d50 100644 --- a/build_projects/dotnet-cli-build/TestTargets.cs +++ b/build_projects/dotnet-cli-build/TestTargets.cs @@ -30,7 +30,7 @@ namespace Microsoft.DotNet.Cli.Build // "dotnet-compile-fsc.Tests", "dotnet-new.Tests", "dotnet-pack.Tests", - "dotnet-projectmodel-server.Tests", + //"dotnet-projectmodel-server.Tests", "dotnet-publish.Tests", "dotnet-resgen.Tests", "dotnet-run.Tests", diff --git a/build_projects/dotnet-cli-build/project.json b/build_projects/dotnet-cli-build/project.json index c6bf2de23..2c1064329 100644 --- a/build_projects/dotnet-cli-build/project.json +++ b/build_projects/dotnet-cli-build/project.json @@ -22,8 +22,8 @@ "System.Xml.XmlSerializer": "4.0.11", "WindowsAzure.Storage": "6.2.2-preview", "NuGet.CommandLine.XPlat": "3.5.0-beta2-1484", - "Microsoft.Build.Framework": "0.1.0-preview-00024-160610", - "Microsoft.Build.Utilities.Core": "0.1.0-preview-00024-160610" + "Microsoft.Build.Framework": "0.1.0-preview-00028-160627", + "Microsoft.Build.Utilities.Core": "0.1.0-preview-00028-160627" }, "frameworks": { "netcoreapp1.0": { diff --git a/build_projects/shared-build-targets-utils/Utils/Utils.cs b/build_projects/shared-build-targets-utils/Utils/Utils.cs index de0ede723..05e9f0aa6 100644 --- a/build_projects/shared-build-targets-utils/Utils/Utils.cs +++ b/build_projects/shared-build-targets-utils/Utils/Utils.cs @@ -38,56 +38,6 @@ namespace Microsoft.DotNet.Cli.Build } } - // Generate a Version 5 (SHA1 Name Based) Guid from a name. - public static Guid GenerateGuidFromName(string name) - { - // Any fixed GUID will do for a namespace. - Guid namespaceId = new Guid("28F1468D-672B-489A-8E0C-7C5B3030630C"); - - using (SHA1 hasher = SHA1.Create()) - { - var nameBytes = System.Text.Encoding.UTF8.GetBytes(name ?? string.Empty); - var namespaceBytes = namespaceId.ToByteArray(); - - SwapGuidByteOrder(namespaceBytes); - - var streamToHash = new byte[namespaceBytes.Length + nameBytes.Length]; - - Array.Copy(namespaceBytes, streamToHash, namespaceBytes.Length); - Array.Copy(nameBytes, 0, streamToHash, namespaceBytes.Length, nameBytes.Length); - - var hashResult = hasher.ComputeHash(streamToHash); - - var res = new byte[16]; - - Array.Copy(hashResult, res, res.Length); - - unchecked { res[6] = (byte)(0x50 | (res[6] & 0x0F)); } - unchecked { res[8] = (byte)(0x40 | (res[8] & 0x3F)); } - - SwapGuidByteOrder(res); - - return new Guid(res); - } - } - - // Do a byte order swap, .NET GUIDs store multi byte components in little - // endian. - private static void SwapGuidByteOrder(byte[] b) - { - Swap(b, 0, 3); - Swap(b, 1, 2); - Swap(b, 5, 6); - Swap(b, 7, 8); - } - - private static void Swap(byte[] b, int x, int y) - { - byte t = b[x]; - b[x] = b[y]; - b[y] = t; - } - public static void DeleteDirectory(string path) { if (Directory.Exists(path)) diff --git a/packaging/windows/clisdk/generatebundle.ps1 b/packaging/windows/clisdk/generatebundle.ps1 index 948caed91..c0a32947f 100644 --- a/packaging/windows/clisdk/generatebundle.ps1 +++ b/packaging/windows/clisdk/generatebundle.ps1 @@ -113,6 +113,4 @@ if(!(Test-Path $DotnetBundleOutput)) Write-Host -ForegroundColor Green "Successfully created dotnet bundle - $DotnetBundleOutput" -_ $RepoRoot\test\Installer\testmsi.ps1 @("$CLISDKMSIFile") - exit $LastExitCode diff --git a/src/dotnet/project.json b/src/dotnet/project.json index 35116b1ef..527513bc6 100644 --- a/src/dotnet/project.json +++ b/src/dotnet/project.json @@ -60,12 +60,12 @@ "exclude": "compile" }, - "MSBuild": "0.1.0-preview-00024-160610", - "Microsoft.Build.Framework": "0.1.0-preview-00024-160610", - "Microsoft.Build.Tasks.Core": "0.1.0-preview-00024-160610", - "Microsoft.Build.Utilities.Core": "0.1.0-preview-00024-160610", - "Microsoft.Build.Targets": "0.1.0-preview-00024-160610", - "Microsoft.Build": "0.1.0-preview-00024-160610", + "MSBuild": "0.1.0-preview-00028-160627", + "Microsoft.Build.Framework": "0.1.0-preview-00028-160627", + "Microsoft.Build.Tasks.Core": "0.1.0-preview-00028-160627", + "Microsoft.Build.Utilities.Core": "0.1.0-preview-00028-160627", + "Microsoft.Build.Targets": "0.1.0-preview-00028-160627", + "Microsoft.Build": "0.1.0-preview-00028-160627", "Microsoft.Net.Compilers.NetCore": "1.3.0", "Microsoft.Net.Compilers.Targets.NetCore": "0.1.5-dev", "Microsoft.Cci": "4.0.0-rc3-24128-00", diff --git a/test/Installer/testmsi.ps1 b/test/Installer/testmsi.ps1 index f3d12cdbb..67200eed3 100644 --- a/test/Installer/testmsi.ps1 +++ b/test/Installer/testmsi.ps1 @@ -2,7 +2,8 @@ # Licensed under the MIT license. See LICENSE file in the project root for full license information. param( - [Parameter(Mandatory=$true)][string]$inputMsi + [string]$InputMsi, + [string]$DotnetDir ) . "$PSScriptRoot\..\..\scripts\common\_common.ps1" @@ -38,7 +39,7 @@ $testName = "Microsoft.DotNet.Cli.Msi.Tests" $testDir="$PSScriptRoot\$testName" $testBin="$RepoRoot\artifacts\tests\$testName" -pushd "$Stage2Dir" +pushd "$DotnetDir" try { .\dotnet restore `