public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencySets.Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } ValidateDependencySets(Version, DependencySets); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); using (Package package = Package.Open(stream, FileMode.Create)) { // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files)); // Write the files to the package WriteFiles(package); // Copy the metadata properties back to the package package.PackageProperties.Creator = String.Join(",", Authors); package.PackageProperties.Description = Description; package.PackageProperties.Identifier = Id; package.PackageProperties.Version = Version.ToString(); package.PackageProperties.Language = Language; package.PackageProperties.Keywords = ((IPackageMetadata)this).Tags; package.PackageProperties.Title = Title; package.PackageProperties.Subject = "NuGet Package Explorer"; } }
protected override void ExecuteCore() { foreach (var packageReference in PackageReferences) { if (packageReference.ItemSpec.Equals(PackageReferenceToReplace, StringComparison.OrdinalIgnoreCase)) { ShouldRemovePackageReference = true; if (!FrameworkReferences.Any(fr => fr.ItemSpec.Equals(FrameworkReferenceToUse, StringComparison.OrdinalIgnoreCase))) { ShouldAddFrameworkReference = true; } } } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any() && !FrameworkReferenceGroups.Any()) { throw new PackagingException(NuGetLogCode.NU5017, NuGetResources.CannotCreateEmptyPackage); } ValidateDependencies(Version, DependencyGroups); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); ValidateLicenseFile(Files, LicenseMetadata); ValidateIconFile(Files, Icon); using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{CalcPsmdcpName()}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package HashSet <string> filesWithoutExtensions = new HashSet <string>(); var extensions = WriteFiles(package, filesWithoutExtensions); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions, filesWithoutExtensions); WriteOpcPackageProperties(package, psmdcpPath); } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencySets.SelectMany(d => d.Dependencies).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } if (!ValidateSpecialVersionLength(Version)) { throw new InvalidOperationException(NuGetResources.SemVerSpecialVersionTooLong); } ValidateDependencySets(Version, DependencySets); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); if (PlatformHelper.IsMono) { #if NET45 // Mono's zip implementation isn't complete as yet using (var package = System.IO.Packaging.Package.Open(stream, FileMode.Create)) { // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files)); // Write the files to the package WriteFiles(package); // Copy the metadata properties back to the package package.PackageProperties.Creator = String.Join(",", Authors); package.PackageProperties.Description = Description; package.PackageProperties.Identifier = Id; package.PackageProperties.Version = Version.ToString(); package.PackageProperties.Language = Language; package.PackageProperties.Keywords = ((IPackageMetadata)this).Tags; package.PackageProperties.Title = Title; package.PackageProperties.LastModifiedBy = CreatorInfo(); } #endif } else { using (var package = new ZipArchive(stream, ZipArchiveMode.Update)) { // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files)); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); } } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencySets.SelectMany(d => d.Dependencies).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } if (!ValidateSpecialVersionLength(Version)) { throw new InvalidOperationException(NuGetResources.SemVerSpecialVersionTooLong); } ValidateDependencySets(Version, DependencySets); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); using (var package = new ZipArchive(stream, ZipArchiveMode.Create)) { // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files)); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencySets.SelectMany(d => d.Dependencies).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } if (!ValidateSpecialVersionLength(Version)) { throw new InvalidOperationException(NuGetResources.SemVerSpecialVersionTooLong); } ValidateDependencySets(Version, DependencySets); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); bool requiresV4TargetFrameworkSchema = RequiresV4TargetFrameworkSchema(Files); using (Package package = Package.Open(stream, FileMode.Create)) { // Validate and write the manifest WriteManifest(package, requiresV4TargetFrameworkSchema ? ManifestVersionUtility.TargetFrameworkSupportVersion : ManifestVersionUtility.DefaultVersion); // Write the files to the package WriteFiles(package); // Copy the metadata properties back to the package package.PackageProperties.Creator = String.Join(",", Authors); package.PackageProperties.Description = Description; package.PackageProperties.Identifier = Id; package.PackageProperties.Version = Version.ToString(); package.PackageProperties.Language = Language; package.PackageProperties.Keywords = ((IPackageMetadata)this).Tags; package.PackageProperties.Title = Title; } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } if (!ValidateSpecialVersionLength(Version)) { throw new InvalidOperationException(NuGetResources.SemVerSpecialVersionTooLong); } if (Version != null && Version.IsSemVer2) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.SemVer2VersionsNotSupported, Version)); } ValidateDependencyGroups(Version, DependencyGroups); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{Guid.NewGuid().ToString("N")}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); WriteOpcPackageProperties(package, psmdcpPath); } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException("Cannot create a package that has no dependencies nor content."); } using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{Guid.NewGuid().ToString("N")}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); WriteOpcPackageProperties(package, psmdcpPath); } }