File: ManifestUtil\XPaths.cs
Web Access
Project: ..\..\..\src\Tasks\Microsoft.Build.Tasks.csproj (Microsoft.Build.Tasks.Core)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
namespace Microsoft.Build.Tasks.Deployment.ManifestUtilities
{
    internal static class XPaths
    {
        public const string applicationRequestMinimumElement = "asmv2:applicationRequestMinimum";
        public const string assemblyElement = "asmv1:assembly";
        public const string assemblyIdentityPath = "/asmv1:assembly/asmv1:assemblyIdentity|/asmv1:assembly/asmv2:assemblyIdentity";
        public const string clsidAttribute = "asmv1:comClass/@clsid";
        public const string comFilesPath = "/asmv1:assembly/asmv1:file[asmv1:typelib or asmv1:comClass]";
        public const string configBindingRedirect = "configuration/runtime/asmv1:assemblyBinding/asmv1:dependentAssembly/asmv1:bindingRedirect";
        public const string defaultAssemblyRequestElement = "asmv2:defaultAssemblyRequest";
        public const string dependencyPublicKeyTokenAttribute = "asmv2:assemblyIdentity/@publicKeyToken";
        public const string fileNameAttribute = "@name";
        public const string fileSizeAttribute = "asmv2:size";
        public const string hashElement = "asmv2:hash/dsig:DigestValue";
        public const string idAttribute = "asmv2:ID";
        public const string languageAttribute1 = "asmv1:assemblyIdentity/@language";
        public const string languageAttribute2 = "asmv2:assemblyIdentity/@language";
        public const string manifestTrustInfoPath = "/asmv1:assembly/asmv2:trustInfo";
        public const string permissionIdentityQuery = "asmv2:IPermission[@class='{0}']";
        public const string permissionClassAttributeQuery = "asmv2:IPermission/@class";
        public const string permissionSetElement = "asmv2:PermissionSet";
        public const string permissionSetReferenceAttribute = "asmv2:permissionSetReference";
        public const string publicKeyTokenAttribute = "asmv2:publicKeyToken";
        public const string requestedExecutionLevelPath = "/asmv1:assembly/asmv2:trustInfo/asmv2:security/asmv3:requestedPrivileges/asmv3:requestedExecutionLevel";
        public const string requestedPrivilegeElement = "asmv3:requestedPrivileges";
        public const string requestedExecutionLevelElement = "asmv3:requestedExecutionLevel";
        public const string sameSiteAttribute = "asmv2:SameSite";
        public const string securityElement = "asmv2:security";
        public const string signaturePath = "/asmv1:assembly/dsig:Signature";
        public const string tlbidAttribute = "asmv1:typelib/@tlbid";
        public const string trustInfoElement = "asmv2:trustInfo";
        public const string trustInfoPath = "/asmv2:trustInfo";
        public const string unrestrictedAttribute = "asmv2:Unrestricted";
 
        // List of paths where codebase may be found in a manifest.
        // Used by Manifest class.
        // In order of most likely occurance....
        public static readonly string[] codebasePaths =
        {
            "/asmv1:assembly/asmv2:dependency/asmv2:dependentAssembly/@codebase",
            "/asmv1:assembly/asmv1:dependency/asmv1:dependentAssembly/@asmv2:codebase",
            "/asmv1:assembly/asmv1:dependency/asmv2:dependentAssembly/@codebase",
            "/asmv1:assembly/asmv2:dependency/asmv1:dependentAssembly/@asmv2:codebase"
        };
 
        // List of attributes that are to be filtered out if empty.
        // Used by ManifestFormatter class.
        // These must be defined in sorted order!
        public static readonly string[] emptyAttributeList =
        {
            "asmv1:assemblyIdentity/@language",
            "asmv1:assemblyIdentity/@processorArchitecture",
            "asmv1:assemblyIdentity/@publicKeyToken",
            "asmv1:assemblyIdentity/@type",
            "asmv1:comClass/@description",
            "asmv1:comClass/@progid",
            "asmv1:comClass/@threadingModel",
            "asmv1:dependency/@optional",
            "asmv1:dependentAssembly/@asmv2:codebase",
            "asmv1:dependentAssembly/@asmv2:group",
            "asmv1:dependentAssembly/@asmv2:hash",
            "asmv1:dependentAssembly/@asmv2:hashalg",
            "asmv1:dependentAssembly/@asmv2:optional",
            "asmv1:dependentAssembly/@asmv2:resourceFallbackCulture",
            "asmv1:dependentAssembly/@asmv2:resourceFallbackCultureInternal",
            "asmv1:dependentAssembly/@asmv2:resourceType",
            "asmv1:dependentAssembly/@asmv2:size",
            "asmv1:description/@asmv2:iconFile",
            "asmv1:description/@asmv2:product",
            "asmv1:description/@asmv2:publisher",
            "asmv1:description/@asmv2:supportUrl",
            "asmv1:description/@co.v1:errorReportUrl",
            "asmv1:description/@co.v1:suiteName",
            "asmv1:file/@asmv2:group",
            "asmv1:file/@asmv2:optional",
            "asmv1:file/@asmv2:writeableType",
            "asmv1:typelib/@flags",
            "asmv2:assemblyIdentity/@language",
            "asmv2:assemblyIdentity/@processorArchitecture",
            "asmv2:assemblyIdentity/@publicKeyToken",
            "asmv2:assemblyIdentity/@type",
            "asmv2:dependency/@optional",
            "asmv2:dependentAssembly/@codebase",
            "asmv2:dependentAssembly/@group",
            "asmv2:dependentAssembly/@hash",
            "asmv2:dependentAssembly/@hashalg",
            "asmv2:dependentAssembly/@optional",
            "asmv2:dependentAssembly/@resourceFallbackCulture",
            "asmv2:dependentAssembly/@resourceFallbackCultureInternal",
            "asmv2:dependentAssembly/@resourceType",
            "asmv2:dependentAssembly/@size",
            "asmv2:dependentOS/@description",
            "asmv2:dependentOS/@supportUrl",
            "asmv2:deployment/@co.v1:createDesktopShortcut",
            "asmv2:deployment/@disallowUrlActivation",
            "asmv2:deployment/@install",
            "asmv2:deployment/@mapFileExtensions",
            "asmv2:deployment/@minimumRequiredVersion",
            "asmv2:deployment/@trustURLParameters",
            "asmv2:description/@iconFile",
            "asmv2:description/@product",
            "asmv2:description/@publisher",
            "asmv2:description/@supportUrl",
            "asmv2:file/@group",
            "asmv2:file/@optional",
            "asmv2:file/@writeableType",
        };
    }
}