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); }
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); }
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); }
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); } } }