1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
// 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
{
/// <summary>
/// Distribution specific strings.
/// </summary>
internal static class WixDistribution
{
/// <summary>
/// News URL for the distribution.
/// </summary>
public static string NewsUrl = "http://wixtoolset.org/news/";
/// <summary>
/// Short product name for the distribution.
/// </summary>
public static string ShortProduct = "WiX Toolset";
/// <summary>
/// Support URL for the distribution.
/// </summary>
public static string SupportUrl = "http://wixtoolset.org/";
/// <summary>
/// Telemetry URL format for the distribution.
/// </summary>
public static string TelemetryUrlFormat = "http://wixtoolset.org/integrationtelemetry/v{0}/?r={1}";
/// <summary>
/// VS Extensions Landing page Url for the distribution.
/// </summary>
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<T>(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;
}
}
}
|