Exemple #1
0
 public VisualStudioPackage(ISetupPackageReference FromPackage)
 {
     this.Id       = FromPackage.GetId();
     this.Version  = FromPackage.GetVersion();
     this.Type     = FromPackage.GetType();
     this.UniqueId = FromPackage.GetUniqueId();
 }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PackageReference"/> class.
        /// </summary>
        /// <param name="reference">The <see cref="ISetupPackageReference"/> to adapt.</param>
        /// <exception cref="ArgumentNullException"><paramref name="reference"/> is null.</exception>
        internal PackageReference(ISetupPackageReference reference)
        {
            Validate.NotNull(reference, nameof(reference));

            // The package reference ID is required, but then try to set other properties to release the COM object and its resources ASAP.
            Id = reference.GetId();

            TrySet(ref version, nameof(Version), () =>
            {
                Version version;

                var versionString = reference.GetVersion();
                if (Version.TryParse(versionString, out version))
                {
                    return(version);
                }

                return(null);
            });

            TrySet(ref chip, nameof(Chip), reference.GetChip);
            TrySet(ref branch, nameof(Branch), reference.GetBranch);
            TrySet(ref type, nameof(Type), reference.GetType);
            TrySet(ref isExtension, nameof(IsExtension), reference.GetIsExtension);
            TrySet(ref uniqueId, nameof(UniqueId), reference.GetUniqueId);
        }
        public void GetAdaptedProperties_Empty()
        {
            var references = new ISetupPackageReference[0];
            Func <ISetupPackageReference, PackageReference> creator = reference => PackageReferenceFactory.Create(reference);

            var packages = Utilities.GetAdaptedPackages(() => references, creator).ToList();

            Assert.Empty(packages);
        }
        public void TrySetCollection_Empty()
        {
            IList <PackageReference> property = null;
            var references = new ISetupPackageReference[0];
            Func <ISetupPackageReference, PackageReference> creator = reference => PackageReferenceFactory.Create(reference);

            var packages = Utilities.TrySetCollection(ref property, nameof(property), () => references, creator);

            Assert.Empty(packages);
        }
Exemple #5
0
 public VCComponent(ISetupPackageReference package, ISetupInstance2 setupInstance)
 {
     this.InstallationPath = setupInstance.GetInstallationPath().ToNPath();
     this.RawVersion       = package.GetVersion();
     this.Version          = null;
     try
     {
         this.Version = new System.Version(package.GetVersion());
     }
     catch
     {
     }
 }
        private static PackageReference CreatePackageReference(ISetupPackageReference package)
        {
            PackageReference refPackage = new PackageReference()
            {
                Branch      = package.GetBranch(),
                Chip        = package.GetChip(),
                Id          = package.GetId(),
                IsExtension = package.GetIsExtension(),
                Language    = package.GetLanguage(),
                UniqueId    = package.GetUniqueId(),
                Version     = package.GetVersion()
            };

            return(refPackage);
        }
        private static VisualStudioInstance FillInInstanceData(ISetupInstance2 instance,
                                                               int lcid,
                                                               Boolean includePackages)
        {
            VisualStudioInstance result = new VisualStudioInstance()
            {
                InstanceId             = instance.GetInstanceId(),
                InstalledVersionNumber = instance.GetInstallationVersion(),
                Description            = instance.GetDescription(lcid),
                DisplayName            = instance.GetDisplayName(lcid)
            };

            // Hides the non-CLS clompliant uint.
            var tempState = instance.GetState();

            if (tempState == InstanceState.Complete)
            {
                result.Status = InstanceStatus.Complete;
            }
            else
            {
                result.Status = (InstanceStatus)tempState;
            }

            result.InstallationPath = instance.GetInstallationPath();

            ISetupPackageReference prod = instance.GetProduct();

            if (prod != null)
            {
                result.ProductName = prod.GetId();
            }

            if ((result.Status & InstanceStatus.Local) == InstanceStatus.Local)
            {
                result.InstallationPath = instance.GetInstallationPath();
            }


            if (includePackages)
            {
                ProcessPackages(instance, result);
            }

            return(result);
        }
Exemple #8
0
 private SetupPackageReference(ISetupPackageReference reference)
 {
     _reference = reference;
 }
Exemple #9
0
 public static SetupPackageReference From(ISetupPackageReference reference)
 {
     return(new SetupPackageReference(reference));
 }
 public VisualStudioSetupPackageReference(ISetupPackageReference setupPackageReference)
 {
     _setupPackageReference = setupPackageReference;
 }
        /// <summary>
        /// Creates a new <see cref="PackageReference"/> from an <see cref="ISetupPackageReference"/>.
        /// </summary>
        /// <param name="package">The <see cref="ISetupPackageReference"/> to wrap.</param>
        /// <returns>A <see cref="PackageReference"/> that wraps the <see cref="ISetupPackageReference"/>.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="package"/> is null.</exception>
        public static PackageReference Create(ISetupPackageReference package)
        {
            Validate.NotNull(package, nameof(package));

            return(new PackageReference(package));
        }
Exemple #12
0
 static bool Predicate(ISetupPackageReference pkg) => pkg.GetId() == "Microsoft.VisualStudio.Component.VC.Tools.x86.x64";