aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/AssemblyName.cs
blob: 0df1a7e98b43fa03ec7e8b3ecacacb685d3490d2 (plain)
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
// 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.

namespace WixToolset.Core.WindowsInstaller.Bind
{
    using System;
    using System.Text;

    internal class AssemblyName
    {
        public AssemblyName(string name, string culture, string version, string fileVersion, string architecture, string publicKeyToken, string type)
        {
            this.Name = name;
            this.Culture = culture ?? "neutral";
            this.Version = version;
            this.FileVersion = fileVersion;
            this.Architecture = architecture;

            this.StrongNamedSigned = !String.IsNullOrEmpty(publicKeyToken);
            this.PublicKeyToken = publicKeyToken ?? "null";
            this.Type = type;
        }

        public string Name { get; }

        public string Culture { get; }

        public string Version { get; }

        public string FileVersion { get; }

        public string Architecture { get; }

        public string PublicKeyToken { get; }

        public bool StrongNamedSigned { get; }

        public string Type { get; }

        public string GetFullName()
        {
            var assemblyName = new StringBuilder();

            assemblyName.Append(this.Name);
            assemblyName.Append(", Version=");
            assemblyName.Append(this.Version);
            assemblyName.Append(", Culture=");
            assemblyName.Append(this.Culture);
            assemblyName.Append(", PublicKeyToken=");
            assemblyName.Append(this.PublicKeyToken);

            if (!String.IsNullOrEmpty(this.Architecture))
            {
                assemblyName.Append(", ProcessorArchitecture=");
                assemblyName.Append(this.Architecture);
            }

            return assemblyName.ToString();
        }
    }
}