Exemplo n.º 1
0
 public PackageReference(IPackage package)
 {
     CanonicalName = package.CanonicalName;
     PackageDirectory = package.GetPackageDirectory();
     Type = package.GetDeveloperLibraryType();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Checks if project is compatible with the package.
        /// </summary>
        public static bool IsCompatible(this Project project, IPackage package)
        {
            if (package == null)
                return true;

            var targetFramework = project.GetTargetFramework();
            var targetFrameworkVersion = project.GetTargetFrameworkVersion(targetFramework);

            var targetsNetFramework = targetFramework.Contains(".NETFramework") || targetFramework.Contains("Silverlight");

            // VC-compatibility
            var compatible = ((package.GetDeveloperLibraryType() == DeveloperLibraryType.VcInclude ||
                               (package.GetDeveloperLibraryType() == DeveloperLibraryType.VcLibrary && project.IsCompatibleArchitecture(package.Architecture)))
                               && project.IsVcProject());

            // NET-compatibility
            compatible = compatible || (package.GetDeveloperLibraryType() == DeveloperLibraryType.Net && project.IsNetProject() &&
                (
                (package.Flavor == "" && targetsNetFramework) ||
                (package.Flavor == "[net20]" && (targetsNetFramework && targetFrameworkVersion >= 2.0)) ||
                (package.Flavor == "[net35]" && (targetsNetFramework && targetFrameworkVersion >= 3.5)) ||
                (package.Flavor == "[net40]" && (targetsNetFramework && targetFrameworkVersion >= 4.0)) ||
                (package.Flavor == "[net45]" && (targetsNetFramework && targetFrameworkVersion >= 4.5)) ||
                (package.Flavor == "[silverlight]" && targetsNetFramework)
                ));

            return compatible;
        }