예제 #1
0
        private void UpdateCliWithLatestNuGetAssemblies(string cliDirectory)
        {
            var nupkgsDirectory    = DotnetCliUtil.GetNupkgDirectoryInRepo();
            var productVersionInfo = FileVersionInfo.GetVersionInfo(DotnetCliUtil.GetXplatDll());
            var pathToPackNupkg    = nupkgsDirectory + Path.DirectorySeparatorChar + "NuGet.Build.Tasks.Pack." +
                                     productVersionInfo.ProductVersion + ".nupkg";
            var pathToSdkInCli = Path.Combine(
                Directory.GetDirectories(Path.Combine(cliDirectory, "sdk"))
                .First());

            using (var nupkg = new PackageArchiveReader(pathToPackNupkg))
            {
                var pathToPackSdk = Path.Combine(pathToSdkInCli, "Sdks", "NuGet.Build.Tasks.Pack");
                var files         = nupkg.GetFiles()
                                    .Where(fileName => fileName.StartsWith("Desktop") ||
                                           fileName.StartsWith("CoreCLR") ||
                                           fileName.StartsWith("build") ||
                                           fileName.StartsWith("buildCrossTargeting"));

                DeleteFiles(pathToPackSdk);
                CopyNupkgFilesToTarget(nupkg, pathToPackSdk, files);

                foreach (var coreClrDll in Directory.GetFiles(Path.Combine(pathToPackSdk, "CoreCLR")))
                {
                    var fileName = Path.GetFileName(coreClrDll);
                    if (fileName != "NuGet.Build.Tasks.Pack.dll")
                    {
                        File.Copy(coreClrDll, Path.Combine(pathToSdkInCli, fileName), true);
                    }
                }
            }

            var pathToRestoreNupkg = nupkgsDirectory + Path.DirectorySeparatorChar + "NuGet.Build.Tasks." +
                                     productVersionInfo.ProductVersion + ".nupkg";

            using (var nupkg = new PackageArchiveReader(pathToRestoreNupkg))
            {
                var files = nupkg.GetFiles()
                            .Where(fileName => fileName.StartsWith("lib/netstandard1.3") ||
                                   fileName.StartsWith("runtimes"));
                File.Delete(Path.Combine(pathToSdkInCli, "NuGet.Build.Tasks.dll"));
                File.Delete(Path.Combine(pathToSdkInCli, "NuGet.Build.Tasks.xml"));
                File.Delete(Path.Combine(pathToSdkInCli, "NuGet.targets"));
                foreach (var file in files)
                {
                    var stream = nupkg.GetStream(file);
                    stream.CopyToFile(Path.Combine(pathToSdkInCli, Path.GetFileName(file)));
                }
            }
        }
        private void UpdateCliWithLatestNuGetAssemblies(string cliDirectory)
        {
            var artifactsDirectory = DotnetCliUtil.GetArtifactsDirectoryInRepo();
            var pathToSdkInCli     = Path.Combine(
                Directory.GetDirectories(Path.Combine(cliDirectory, "sdk"))
                .First());
            const string configuration =
#if DEBUG
                "Debug";
#else
                "Release";
#endif
            const string toolsetVersion = "16.0";
            CopyPackSdkArtifacts(artifactsDirectory, pathToSdkInCli, configuration, toolsetVersion);
            CopyRestoreArtifacts(artifactsDirectory, pathToSdkInCli, configuration, toolsetVersion);
        }
예제 #3
0
        private void UpdateCliWithLatestNuGetAssemblies(string cliDirectory)
        {
            var artifactsDirectory = DotnetCliUtil.GetArtifactsDirectoryInRepo();
            var pathToSdkInCli     = Path.Combine(
                Directory.EnumerateDirectories(Path.Combine(cliDirectory, "sdk"))
                .Where(d => !string.Equals(Path.GetFileName(d), "NuGetFallbackFolder", StringComparison.OrdinalIgnoreCase))
                .First());
            const string configuration =
#if DEBUG
                "Debug";
#else
                "Release";
#endif
            CopyPackSdkArtifacts(artifactsDirectory, pathToSdkInCli, configuration);
            CopyRestoreArtifacts(artifactsDirectory, pathToSdkInCli, configuration);
        }
예제 #4
0
        private void UpdateCliWithLatestNuGetAssemblies(string cliDirectory)
        {
            var nupkgsDirectory = DotnetCliUtil.GetNupkgDirectoryInRepo();

            var pathToPackNupkg = FindMostRecentNupkg(nupkgsDirectory, "NuGet.Build.Tasks.Pack");

            var nupkgsToCopy = new List <string> {
                "NuGet.Build.Tasks", "NuGet.Versioning", "NuGet.Protocol", "NuGet.ProjectModel", "NuGet.Packaging", "NuGet.LibraryModel", "NuGet.Frameworks", "NuGet.DependencyResolver.Core", "NuGet.Configuration", "NuGet.Common", "NuGet.Commands", "NuGet.CommandLine.XPlat", "NuGet.Credentials"
            };

            var pathToSdkInCli = Path.Combine(
                Directory.GetDirectories(Path.Combine(cliDirectory, "sdk"))
                .First());

            using (var nupkg = new PackageArchiveReader(pathToPackNupkg))
            {
                var pathToPackSdk = Path.Combine(pathToSdkInCli, "Sdks", "NuGet.Build.Tasks.Pack");
                var files         = nupkg.GetFiles()
                                    .Where(fileName => fileName.StartsWith("Desktop") ||
                                           fileName.StartsWith("CoreCLR") ||
                                           fileName.StartsWith("build") ||
                                           fileName.StartsWith("buildCrossTargeting"));

                DeleteDirectory(pathToPackSdk);
                CopyNupkgFilesToTarget(nupkg, pathToPackSdk, files);
            }


            foreach (var nupkgName in nupkgsToCopy)
            {
                using (var nupkg = new PackageArchiveReader(FindMostRecentNupkg(nupkgsDirectory, nupkgName)))
                {
                    var files = nupkg.GetFiles()
                                .Where(fileName => fileName.StartsWith("lib/netstandard") ||
                                       fileName.StartsWith("lib/netcoreapp") ||
                                       fileName.Contains("NuGet.targets"));

                    CopyFlatlistOfFilesToTarget(nupkg, pathToSdkInCli, files);
                }
            }
        }
        private void UpdateCliWithLatestNuGetAssemblies(string cliDirectory)
        {
            var nupkgsDirectory    = DotnetCliUtil.GetNupkgDirectoryInRepo();
            var pathToPackNupkg    = FindMostRecentNupkg(nupkgsDirectory, "NuGet.Build.Tasks.Pack");
            var pathToRestoreNupkg = FindMostRecentNupkg(nupkgsDirectory, "NuGet.Build.Tasks");
            var pathToSdkInCli     = Path.Combine(
                Directory.GetDirectories(Path.Combine(cliDirectory, "sdk"))
                .First());

            using (var nupkg = new PackageArchiveReader(pathToPackNupkg))
            {
                var pathToPackSdk = Path.Combine(pathToSdkInCli, "Sdks", "NuGet.Build.Tasks.Pack");
                var files         = nupkg.GetFiles()
                                    .Where(fileName => fileName.StartsWith("Desktop") ||
                                           fileName.StartsWith("CoreCLR") ||
                                           fileName.StartsWith("build") ||
                                           fileName.StartsWith("buildCrossTargeting"));

                DeleteFiles(pathToPackSdk);
                CopyNupkgFilesToTarget(nupkg, pathToPackSdk, files);
            }
        }