File: DefaultValues.cs
Web Access
Project: Microsoft.DotNet.Build.Tasks.Workloads.csproj (Microsoft.DotNet.Build.Tasks.Workloads)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.DotNet.Build.Tasks.Workloads;

/// <summary>
/// Defines default values that can be used to when creating workload artifacts.
/// </summary>
internal static class DefaultValues
{
    /// <summary>
    /// Maximum size of an MSI in bytes.
    /// </summary>
    /// <remarks>
    /// Workload MSIs are distributed in NuGet packages and cannot exceed the maximum size of a NuGet package (250 MB). The limit
    /// is set to 245 MB to account for package metadata, signatures, etc.
    /// </remarks>
    public const int MaxMsiSize = 256901120;

    /// <summary>
    /// Prefix used in Visual Studio for SWIX based package group.
    /// </summary>
    public const string PackageGroupPrefix = "PackageGroup";

    /// <summary>
    /// The default category to assign to a SWIX component. The value is used
    /// to group individual components in Visual Studio Installer.
    /// </summary>
    public static readonly string ComponentCategory = ".NET";

    /// <summary>
    /// The default value to assign to the Manufacturer property of an MSI.
    /// </summary>
    public static readonly string Manufacturer = "Microsoft Corporation";

    public static readonly string x86 = "x64";
    public static readonly string x64 = "x64";
    public static readonly string arm64 = "arm64";
    public static readonly string Neutral = "neutral";

    /// <summary>
    /// A value indicating that the SWIX project creates an MSI package for a workload manifest. 
    /// </summary>
    public static readonly string PackageTypeMsiManifest = "msi-manifest";

    /// <summary>
    /// A value indicating that the SWIX project creates an MSI package for a workload pack. 
    /// </summary>
    public static readonly string PackageTypeMsiPack = "msi-pack";

    /// <summary>
    /// A value indicating that the SWIX project creates a component package for a workload. 
    /// </summary>
    public static readonly string PackageTypeComponent = "component";

    /// <summary>
    /// A value indicating that the SWIX project creates a package group for a workload manifest. 
    /// </summary>
    public static readonly string PackageTypeManifestPackageGroup = "manifest-package-group";

    /// <summary>
    /// A value indicating that the SWIX project creates a package group for a workload manifest. 
    /// </summary>
    public static readonly string PackageTypeWorkloadSetPackageGroup = "workloadset-package-group";

    /// <summary>
    /// A value indicating that the SWIX project creates an MSI package for a workload set.
    /// </summary>
    public static readonly string PackageTypeMsiWorkloadSet = "msi-workload-set";

    /// <summary>
    /// A value indicating the MSI represents a workload manifest.
    /// </summary>
    public static readonly string ManifestMsi = "manifest";

    /// <summary>
    /// A value indicating the MSI represents a workload pack.
    /// </summary>
    public static readonly string WorkloadPackMsi = "pack";

    /// <summary>
    /// A value indicating the MSI represents a workload set.
    /// </summary>
    public static readonly string WorkloadSetMsi = "workload-set";

    /// <summary>
    /// A value indicating the MSI represents a workload pack group.
    /// </summary>
    public static readonly string WorkloadPackGroupMsi = "pack-group";

    /// <summary>
    /// Default values specific to SWIX authoring.
    /// </summary>
    internal static class Swix
    {
        public static readonly string Yes = "yes";

        public static readonly string No = "no";
    }

    internal static class Wix
    {
        /// <summary>
        /// Default LCID value for the ProductLanguage property.
        /// </summary>
        public const string Language = "1033";

        /// <summary>
        /// Default preprocessor variable to use for substituing File@Source when harvesting a directory with Heat.
        /// </summary>
        public const string SourceVariableName = "SourceDir";
    }

}