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); }
/// <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); } } }