public static string GetPackageFullName(string name, string publisherId, AppxPackageArchitecture architecture, string version, string resourceId = null)
        {
            var parsedVersion = Version.Parse(version);

            string packageFullName = null;
            var    packageId       = new PACKAGE_ID
            {
                name                  = name,
                publisher             = publisherId,
                processorArchitecture = (uint)architecture,
                version               = new PackageVersion(parsedVersion).Version,
                resourceId            = resourceId
            };

            uint packageFamilyNameLength = 0;

            // determine the length (null buffer, should always return 122)
            // ReSharper disable once InvertIf
            if (PackageFullNameFromId(packageId, ref packageFamilyNameLength, null) == 122)
            {
                // insufficient buffer

                var packageFamilyNameBuilder = new StringBuilder((int)packageFamilyNameLength);
                if (PackageFullNameFromId(packageId, ref packageFamilyNameLength, packageFamilyNameBuilder) == 0)
                {
                    packageFullName = packageFamilyNameBuilder.ToString();
                }
            }
            return(packageFullName);
        }
Beispiel #2
0
        public static string GetPackageFamilyName(string name, string publisherId)
        {
            string packageFamilyName = null;
            var    packageId         = new PACKAGE_ID
            {
                name      = name,
                publisher = publisherId
            };

            uint packageFamilyNameLength = 0;

            // determine the length (null buffer, should always return 122)
            // ReSharper disable once InvertIf
            if (PackageFamilyNameFromId(packageId, ref packageFamilyNameLength, null) == 122)
            {
                // insufficient buffer

                var packageFamilyNameBuilder = new StringBuilder((int)packageFamilyNameLength);
                if (PackageFamilyNameFromId(packageId, ref packageFamilyNameLength, packageFamilyNameBuilder) == 0)
                {
                    packageFamilyName = packageFamilyNameBuilder.ToString();
                }
            }

            return(packageFamilyName);
        }
        public static string TryGetPackageFamilyName(string name, string publisherId)
        {
            string packageFamilyName = String.Empty;

            try
            {
                var packageId = new PACKAGE_ID
                {
                    name      = name,
                    publisher = publisherId,
                };

                uint packageFamilyNameLength = 0;

                // First get the length of the Package Name -> Pass NULL as Output Buffer
                if (PackageFamilyNameFromId(packageId, ref packageFamilyNameLength, null) == 122) // ERROR_INSUFFICIENT_BUFFER
                {
                    var packageFamilyNameBuilder = new StringBuilder((int)packageFamilyNameLength);
                    if (PackageFamilyNameFromId(packageId, ref packageFamilyNameLength, packageFamilyNameBuilder) == 0)
                    {
                        packageFamilyName = packageFamilyNameBuilder.ToString();
                    }
                }
            }
            catch {; }

            return(packageFamilyName);
        }
Beispiel #4
0
 private AppxPackageName(string package_id, PACKAGE_ID package)
     : this(package_id)
 {
     Architecture = package.processorArchitecture;
     Version      = package.version.ToVersion();
     Name         = package.name != IntPtr.Zero ? Marshal.PtrToStringUni(package.name) : string.Empty;
     ResourceId   = package.resourceId != IntPtr.Zero ? Marshal.PtrToStringUni(package.resourceId) : string.Empty;
     PublisherId  = package.publisherId != IntPtr.Zero ? Marshal.PtrToStringUni(package.publisherId) : string.Empty;
 }
        public static string BuildDotNetNuGetDelete(string aTokenizedCommandLine)
        {
            StringBuilder vResult = new StringBuilder(aTokenizedCommandLine);

            vResult
            .Replace(PACKAGE_ID.AsToken(), PackageId)
            .Replace(PACKAGE_VERSION.AsToken(), PackageVersion)
            .Replace(SOURCE.AsToken(), Source)
            .Replace(API_KEY.AsToken(), ApiKey)
            .Replace(VERBOSITY_DOTNET.AsToken(), VerbosityDotNet);
            return(vResult.ToString());
        }
        public static string TryGetPackageFullName(string name, string publisherId, Version appVersion, UInt32 cpuArchitecture)
        {
            string packageFullName = String.Empty;

            try
            {
                var major = Convert.ToUInt16(appVersion.Major);
                var minor = Convert.ToUInt16(appVersion.Minor);
                var build = Convert.ToUInt16(appVersion.Build);
                var rev   = Convert.ToUInt16(appVersion.Revision);

                UInt64 packedVersion =
                    Convert.ToUInt64(rev) << 0 |
                        Convert.ToUInt64(build) << 16 |
                        Convert.ToUInt64(minor) << 32 |
                        Convert.ToUInt64(major) << 48;


                var packageId = new PACKAGE_ID
                {
                    name                  = name,
                    publisher             = publisherId,
                    processorArchitecture = cpuArchitecture,
                    version               = packedVersion
                };

                uint packageFullNameLength = 0;

                // First get the length of the Package Name -> Pass NULL as Output Buffer
                if (PackageFullNameFromId(packageId, ref packageFullNameLength, null) == 122) // ERROR_INSUFFICIENT_BUFFER
                {
                    var packageFullNameBuilder = new StringBuilder((int)packageFullNameLength);
                    if (PackageFullNameFromId(packageId, ref packageFullNameLength, packageFullNameBuilder) == 0)
                    {
                        packageFullName = packageFullNameBuilder.ToString();
                    }
                }
            }
            catch {; }

            return(packageFullName);
        }
 private static extern uint PackageFullNameFromId(PACKAGE_ID packageId, ref uint packageFamilyNameLength, StringBuilder packageFamilyName);