/// <summary> /// Analyzes the transforms included in the patch package to find the ones that /// are applicable to an install package. /// </summary> /// <param name="installPackage">The install package to validate the transforms against</param> /// <returns>Array of valid transform names</returns> /// <remarks> /// The returned list does not include the "patch special transforms" that /// are prefixed with "#" If a transform is valid, then its corresponding /// special transform is assumed to be valid as well. /// </remarks> internal string[] GetValidTransforms(InstallPackage installPackage) { ArrayList transformArray = new ArrayList(); string transformList = this.SummaryInfo.LastSavedBy; foreach(string transform in transformList.Split(';', ':')) { if(transform.Length != 0 && !transform.StartsWith("#", StringComparison.Ordinal)) { this.LogMessage("Checking validity of transform {0}", transform); string tempTransformFile = null; try { tempTransformFile = Path.GetTempFileName(); this.ExtractTransform(transform, tempTransformFile); if(installPackage.IsTransformValid(tempTransformFile)) { this.LogMessage("Found valid transform: {0}", transform); transformArray.Add(transform); } } finally { if(tempTransformFile != null && File.Exists(tempTransformFile)) { try { File.Delete(tempTransformFile); } catch(IOException) { } } } } } return (string[]) transformArray.ToArray(typeof(string)); }
internal InstallPackageProperties(InstallPackage installPackage) { this.installPackage = installPackage; }