internal void Insert(int index, ProductBuilder builder) { this.list.Insert(index, builder); }
public void Add (ProductBuilder builder) { list.Add (builder); }
private bool AddVerificationInformation(XmlNode packageFileNode, string fileSource, string fileName, ProductBuilder builder, BuildSettings settings, BuildResults results) { XmlAttribute hashAttribute = packageFileNode.Attributes[HASH_ATTRIBUTE]; XmlAttribute publicKeyAttribute = packageFileNode.Attributes[PUBLICKEY_ATTRIBUTE]; if (File.Exists(fileSource)) { string publicKey = GetPublicKeyOfFile(fileSource); if (hashAttribute == null && publicKeyAttribute == null) { // If neither the Hash nor PublicKey attributes were specified in the manifest, add it if (publicKey != null) { AddAttribute(packageFileNode, PUBLICKEY_ATTRIBUTE, publicKey); } else { AddAttribute(packageFileNode, HASH_ATTRIBUTE, GetFileHash(fileSource)); } } if (publicKeyAttribute != null) { // Always use the PublicKey of the file on disk if (publicKey != null) ReplaceAttribute(packageFileNode, PUBLICKEY_ATTRIBUTE, publicKey); else { // File on disk is not signed. Remove the public key info, and make sure the hash is written instead packageFileNode.Attributes.RemoveNamedItem(PUBLICKEY_ATTRIBUTE); if (hashAttribute == null) AddAttribute(packageFileNode, HASH_ATTRIBUTE, GetFileHash(fileSource)); } // If the public key in the file doesn't match the public key on disk, issue a build warning if (publicKey == null || !publicKey.ToLowerInvariant().Equals(publicKeyAttribute.Value.ToLowerInvariant())) { if (results != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.DifferingPublicKeys", PUBLICKEY_ATTRIBUTE, builder.Name, fileSource)); } } if (hashAttribute != null) { string fileHash = GetFileHash(fileSource); // Always use the Hash of the file on disk ReplaceAttribute(packageFileNode, HASH_ATTRIBUTE, fileHash); // If the public key in the file doesn't match the public key on disk, issue a build warning if (!fileHash.ToLowerInvariant().Equals(hashAttribute.Value.ToLowerInvariant())) { if (results != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.DifferingPublicKeys", "Hash", builder.Name, fileSource)); } } } else if (settings.ComponentsLocation == ComponentsLocation.HomeSite) { if (hashAttribute == null && publicKeyAttribute == null) { if (results != null) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateBootstrapper.MissingVerificationInformation", fileName, builder.Name)); } return false; } } return true; }
public void Add(ProductBuilder builder) { list.Add(builder); }
private Package GetPackageForSettings_Helper(CultureInfo culture, CultureInfo altCulture, ProductBuilder builder, BuildResults results, bool fShowWarning) { if (altCulture == null) return null; Package package = builder.Product.Packages.Package(altCulture.Name); if (package != null) { if (fShowWarning && culture != null && results != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.UsingProductCulture", culture.Name, builder.Name, altCulture.Name)); return package; } return null; }
private bool VerifyHomeSiteInformation(XmlNode packageFileNode, ProductBuilder builder, BuildSettings settings, BuildResults results) { if (settings.ComponentsLocation != ComponentsLocation.HomeSite) { return true; } XmlAttribute homesiteAttribute = packageFileNode.Attributes[HOMESITE_ATTRIBUTE]; if (homesiteAttribute == null && builder.Product.CopyAllPackageFiles != CopyAllFilesType.CopyAllFilesIfNotHomeSite) { if (results != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.PackageHomeSiteMissing", builder.Name)); return false; } return true; }
private Package GetPackageForSettings(BuildSettings settings, ProductBuilder builder, BuildResults results) { CultureInfo ci = Util.GetCultureInfoFromString(settings.Culture); CultureInfo fallbackCI = Util.GetCultureInfoFromString(settings.FallbackCulture); Package package = null; if (builder.Product.Packages.Count == 0) { if (results != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateBootstrapper.ProductCultureNotFound", builder.Name)); return null; } if (ci != null) { package = builder.Product.Packages.Package(ci.Name); if (package != null) return package; // Target culture not found? Go through the progression of parent cultures (up until but excluding the invariant culture) -> fallback culture -> parent fallback culture -> default culture -> parent default culture -> any culture available // Note: there is no warning if the parent culture of the requested culture is found CultureInfo parentCulture = ci.Parent; // Keep going up the chain of parents, stopping at the invariant culture while (parentCulture != null && parentCulture != CultureInfo.InvariantCulture) { package = GetPackageForSettings_Helper(ci, parentCulture, builder, results, false); if (package != null) return package; parentCulture = parentCulture.Parent; } } if (fallbackCI != null) { package = GetPackageForSettings_Helper(ci, fallbackCI, builder, results, true); if (package != null) return package; if (!fallbackCI.IsNeutralCulture) { package = GetPackageForSettings_Helper(ci, fallbackCI.Parent, builder, results, true); if (package != null) return package; } } package = GetPackageForSettings_Helper(ci, Util.DefaultCultureInfo, builder, results, true); if (package != null) return package; if (!Util.DefaultCultureInfo.IsNeutralCulture) { package = GetPackageForSettings_Helper(ci, Util.DefaultCultureInfo.Parent, builder, results, true); if (package != null) return package; } if (results != null && ci != null) results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.UsingProductCulture", ci.Name, builder.Name, builder.Product.Packages.Item(0).Culture)); return builder.Product.Packages.Item(0); }
internal void Insert(int index, ProductBuilder builder) { this.list.Insert(index, builder); }
private bool AddVerificationInformation(XmlNode packageFileNode, string fileSource, string fileName, ProductBuilder builder, BuildSettings settings, BuildResults results) { XmlAttribute attribute = packageFileNode.Attributes["Hash"]; XmlAttribute attribute2 = packageFileNode.Attributes["PublicKey"]; if (File.Exists(fileSource)) { string publicKeyOfFile = this.GetPublicKeyOfFile(fileSource); if ((attribute == null) && (attribute2 == null)) { if (publicKeyOfFile != null) { this.AddAttribute(packageFileNode, "PublicKey", publicKeyOfFile); } else { this.AddAttribute(packageFileNode, "Hash", this.GetFileHash(fileSource)); } } if (attribute2 != null) { if (publicKeyOfFile != null) { this.ReplaceAttribute(packageFileNode, "PublicKey", publicKeyOfFile); } else { packageFileNode.Attributes.RemoveNamedItem("PublicKey"); if (attribute == null) { this.AddAttribute(packageFileNode, "Hash", this.GetFileHash(fileSource)); } } if (((publicKeyOfFile == null) || !publicKeyOfFile.ToLowerInvariant().Equals(attribute2.Value.ToLowerInvariant())) && (results != null)) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.DifferingPublicKeys", new object[] { "PublicKey", builder.Name, fileSource })); } } if (attribute != null) { string fileHash = this.GetFileHash(fileSource); this.ReplaceAttribute(packageFileNode, "Hash", fileHash); if (!fileHash.ToLowerInvariant().Equals(attribute.Value.ToLowerInvariant()) && (results != null)) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.DifferingPublicKeys", new object[] { "Hash", builder.Name, fileSource })); } } } else if (((settings.ComponentsLocation == ComponentsLocation.HomeSite) && (attribute == null)) && (attribute2 == null)) { if (results != null) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateBootstrapper.MissingVerificationInformation", new object[] { fileName, builder.Name })); } return false; } return true; }
private bool VerifyHomeSiteInformation(XmlNode packageFileNode, ProductBuilder builder, BuildSettings settings, BuildResults results) { if (settings.ComponentsLocation != ComponentsLocation.HomeSite) { return true; } if ((packageFileNode.Attributes["HomeSite"] != null) || (builder.Product.CopyAllPackageFiles == CopyAllFilesType.CopyAllFilesIfNotHomeSite)) { return true; } if (results != null) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.PackageHomeSiteMissing", new object[] { builder.Name })); } return false; }
private Package GetPackageForSettings(BuildSettings settings, ProductBuilder builder, BuildResults results) { CultureInfo cultureInfoFromString = Util.GetCultureInfoFromString(settings.Culture); CultureInfo altCulture = Util.GetCultureInfoFromString(settings.FallbackCulture); Package package = null; if (builder.Product.Packages.Count == 0) { if (results != null) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateBootstrapper.ProductCultureNotFound", new object[] { builder.Name })); } return null; } if (cultureInfoFromString != null) { package = builder.Product.Packages.Package(cultureInfoFromString.Name); if (package != null) { return package; } for (CultureInfo info3 = cultureInfoFromString.Parent; (info3 != null) && (info3 != CultureInfo.InvariantCulture); info3 = info3.Parent) { package = this.GetPackageForSettings_Helper(cultureInfoFromString, info3, builder, results, false); if (package != null) { return package; } } } if (altCulture != null) { package = this.GetPackageForSettings_Helper(cultureInfoFromString, altCulture, builder, results, true); if (package != null) { return package; } if (!altCulture.IsNeutralCulture) { package = this.GetPackageForSettings_Helper(cultureInfoFromString, altCulture.Parent, builder, results, true); if (package != null) { return package; } } } package = this.GetPackageForSettings_Helper(cultureInfoFromString, Util.DefaultCultureInfo, builder, results, true); if (package != null) { return package; } if (!Util.DefaultCultureInfo.IsNeutralCulture) { package = this.GetPackageForSettings_Helper(cultureInfoFromString, Util.DefaultCultureInfo.Parent, builder, results, true); if (package != null) { return package; } } if ((results != null) && (cultureInfoFromString != null)) { results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Warning, "GenerateBootstrapper.UsingProductCulture", new object[] { cultureInfoFromString.Name, builder.Name, builder.Product.Packages.Item(0).Culture })); } return builder.Product.Packages.Item(0); }