// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. using System; using System.Diagnostics; using System.Reflection; using System.Resources; [assembly: AssemblyCompany(".NET Foundation")] [assembly: AssemblyCopyright("Copyright (c) .NET Foundation and contributors. All rights reserved.")] [assembly: AssemblyProduct("WiX Toolset")] #if DEBUG [assembly: AssemblyConfiguration("DEBUG")] #else [assembly: AssemblyConfiguration("")] #endif [assembly: NeutralResourcesLanguage("en-US")] namespace WixToolset { /// /// Distribution specific strings. /// internal static class WixDistribution { /// /// News URL for the distribution. /// public static string NewsUrl = "http://wixtoolset.org/news/"; /// /// Short product name for the distribution. /// public static string ShortProduct = "WiX Toolset"; /// /// Support URL for the distribution. /// public static string SupportUrl = "http://wixtoolset.org/"; /// /// Telemetry URL format for the distribution. /// public static string TelemetryUrlFormat = "http://wixtoolset.org/integrationtelemetry/v{0}/?r={1}"; /// /// VS Extensions Landing page Url for the distribution. /// public static string VSExtensionsLandingUrl = "http://wixtoolset.org/releases/"; public static string ReplacePlaceholders(string original, Assembly assembly) { if (null != assembly) { FileVersionInfo fileVersion = FileVersionInfo.GetVersionInfo(assembly.Location); original = original.Replace("[FileComments]", fileVersion.Comments); original = original.Replace("[FileCopyright]", fileVersion.LegalCopyright); original = original.Replace("[FileProductName]", fileVersion.ProductName); original = original.Replace("[FileVersion]", fileVersion.FileVersion); if (original.Contains("[FileVersionMajorMinor]")) { Version version = new Version(fileVersion.FileVersion); original = original.Replace("[FileVersionMajorMinor]", String.Concat(version.Major, ".", version.Minor)); } AssemblyCompanyAttribute company; if (WixDistribution.TryGetAttribute(assembly, out company)) { original = original.Replace("[AssemblyCompany]", company.Company); } AssemblyCopyrightAttribute copyright; if (WixDistribution.TryGetAttribute(assembly, out copyright)) { original = original.Replace("[AssemblyCopyright]", copyright.Copyright); } AssemblyDescriptionAttribute description; if (WixDistribution.TryGetAttribute(assembly, out description)) { original = original.Replace("[AssemblyDescription]", description.Description); } AssemblyProductAttribute product; if (WixDistribution.TryGetAttribute(assembly, out product)) { original = original.Replace("[AssemblyProduct]", product.Product); } AssemblyTitleAttribute title; if (WixDistribution.TryGetAttribute(assembly, out title)) { original = original.Replace("[AssemblyTitle]", title.Title); } } original = original.Replace("[NewsUrl]", WixDistribution.NewsUrl); original = original.Replace("[ShortProduct]", WixDistribution.ShortProduct); original = original.Replace("[SupportUrl]", WixDistribution.SupportUrl); return original; } private static bool TryGetAttribute(Assembly assembly, out T attribute) where T : Attribute { attribute = null; object[] customAttributes = assembly.GetCustomAttributes(typeof(T), false); if (null != customAttributes && 0 < customAttributes.Length) { attribute = customAttributes[0] as T; } return null != attribute; } } }