/// <summary> /// This function build a valid registry path in dependecy to the /// assembly information /// </summary> private String BuildRegistryPath() { if (!string.IsNullOrEmpty(_registryPath)) { return(_registryPath); } else { AssemblyAccessor accessor = new AssemblyAccessor(ReferenceAssembly, UseReflectionBasedAssemblyAccessor); if (string.IsNullOrEmpty(accessor.AssemblyCompany) || string.IsNullOrEmpty(accessor.AssemblyProduct)) { throw new NetSparkleException("STOP: Sparkle is missing the company or productname tag in " + ReferenceAssembly); } return("Software\\" + accessor.AssemblyCompany + "\\" + accessor.AssemblyProduct + "\\AutoUpdate"); } }
/// <summary> /// Constructor /// </summary> /// <param name="referenceAssembly">the name of the reference assembly</param> /// <param name="isReflectionBasedAssemblyAccessorUsed"><c>true</c> if reflection is used to access the assembly.</param> protected Configuration(string referenceAssembly, bool isReflectionBasedAssemblyAccessorUsed) { // set default values InitWithDefaultValues(); // set the value this.UseReflectionBasedAssemblyAccessor = isReflectionBasedAssemblyAccessorUsed; // save the reference assembly this.ReferenceAssembly = referenceAssembly; try { // set some value from the binary AssemblyAccessor accessor = new AssemblyAccessor(referenceAssembly, this.UseReflectionBasedAssemblyAccessor); ApplicationName = accessor.AssemblyProduct; InstalledVersion = accessor.AssemblyVersion; } catch { this.CheckForUpdate = false; throw; } }