Beispiel #1
0
        public static IDictionary <string, string> GetPackageVersions(CodeGenerationContext context)
        {
            IDictionary <string, string> versions;

            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            string packageReferenceFileName = PackageVersions.GetPackageReferenceFileName(context);

            if (PackageVersions.PackageFileContents != null)
            {
                PackageVersions.PackageFileContents.TryGetValue(packageReferenceFileName, out versions);
                if (versions != null)
                {
                    return(versions);
                }
            }
            else
            {
                PackageVersions.PackageFileContents = new Dictionary <string, IDictionary <string, string> >(StringComparer.OrdinalIgnoreCase);
            }
            versions = VersionFileReader.GetVersions(packageReferenceFileName, "/Packages/Package");
            if (versions == null)
            {
                throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "The {0} file is missing from the installed template folder.", packageReferenceFileName));
            }
            PackageVersions.PackageFileContents[packageReferenceFileName] = versions;
            return(versions);
        }
Beispiel #2
0
        private static string GetPackageReferenceFileName(CodeGenerationContext context)
        {
            IEnumerable <IVsPackageMetadata> installedPackages = PackageVersions.GetInstalledPackages(context);
            string packageVersionsFileName = PackageVersions.GetPackageVersionsFileName(PackageVersions._latestKnownPackageVersion);

            PackageVersions.GetPackageFileNameForPackage(context, installedPackages, NuGetPackages.MvcNuGetPackageId, AssemblyVersions.MvcAssemblyName, AssemblyVersions.MvcAssemblyMinVersion, ref packageVersionsFileName);
            PackageVersions.GetPackageFileNameForPackage(context, installedPackages, NuGetPackages.WebApiNuGetPackageId, AssemblyVersions.WebApiAssemblyName, AssemblyVersions.WebApiAssemblyMinVersion, ref packageVersionsFileName);
            return(packageVersionsFileName);
        }
Beispiel #3
0
        public string GetPackageVersion(CodeGenerationContext context, string id)
        {
            string str;

            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }
            IDictionary <string, string> packageVersions = PackageVersions.GetPackageVersions(context);

            packageVersions.TryGetValue(id, out str);
            return(str);
        }
Beispiel #4
0
        internal static void GetPackageFileNameForPackage(CodeGenerationContext context, IEnumerable <IVsPackageMetadata> installedPackages, string packageId, string assemblyReferenceName, Version minSupportedAssemblyReferenceVersion, ref string packageFileName)
        {
            Version assemblyVersion;

            if (ProjectReferences.IsAssemblyReferenced(context.ActiveProject, assemblyReferenceName))
            {
                IVsPackageMetadata variable = (
                    from package in installedPackages
                    where string.Equals(packageId, package.Id, StringComparison.OrdinalIgnoreCase)
                    select package).FirstOrDefault <IVsPackageMetadata>();
                if (variable == null || !SemanticVersionParser.TryParse(variable.VersionString, out assemblyVersion))
                {
                    assemblyVersion = ProjectReferences.GetAssemblyVersion(context.ActiveProject, assemblyReferenceName);
                }
                if (assemblyVersion >= minSupportedAssemblyReferenceVersion && assemblyVersion <= PackageVersions._latestKnownPackageVersion)
                {
                    packageFileName = PackageVersions.GetPackageVersionsFileName(assemblyVersion);
                }
            }
        }