예제 #1
0
        private string MakeTestPackage(string repositoryPath, PackageIdentity identity, string packageFileName, string contentFileName)
        {
            var directory = Path.Combine(repositoryPath, Guid.NewGuid().ToString());

            Directory.CreateDirectory(directory);

            File.WriteAllBytes(Path.Combine(directory, contentFileName), new byte[0]);

            var assemblyFileName = "assembly.dll";

            File.WriteAllBytes(Path.Combine(directory, assemblyFileName), new byte[0]);

            var packageBuilder = new Packaging.PackageBuilder();

            packageBuilder.Id      = identity.Id;
            packageBuilder.Version = identity.Version;
            packageBuilder.AddFiles(directory, contentFileName, contentFileName);
            packageBuilder.AddFiles(directory, assemblyFileName, $"lib/{PackageFramework.GetShortFolderName()}/assembly.dll");
            packageBuilder.Authors.Add("NuGet");
            packageBuilder.Description = "A test package";

            var destination = Path.Combine(repositoryPath, packageFileName);

            using (var destinationStream = new FileStream(destination, FileMode.Create, FileAccess.Write))
            {
                packageBuilder.Save(destinationStream);
            }

            Directory.Delete(directory, true);

            return(destination);
        }
예제 #2
0
        /// <summary>
        /// Create packages with PackageBuilder, this includes OPC support.
        /// </summary>
        public static void CreateOPCPackages(List <SimpleTestPackageContext> packages, string repositoryPath, bool developmentDependency = false)
        {
            foreach (var package in packages)
            {
                var builder = new Packaging.PackageBuilder()
                {
                    Id                    = package.Id,
                    Version               = NuGetVersion.Parse(package.Version),
                    Description           = "Description.",
                    DevelopmentDependency = developmentDependency
                };

                builder.Authors.Add("testAuthor");

                foreach (var file in package.Files)
                {
                    builder.Files.Add(CreatePackageFile(file.Key));
                }

                using (var stream = File.OpenWrite(Path.Combine(repositoryPath, $"{package.Identity.Id}.{package.Identity.Version.ToString()}.nupkg")))
                {
                    builder.Save(stream);
                }
            }
        }