private static DownloadResourceResult CreateDownloadResourceResult(string nupkgPath, string installPath) { Stream stream = null; PackageReaderBase packageReader = null; try { stream = File.Open(nupkgPath, FileMode.Open, FileAccess.Read, FileShare.Read); packageReader = new PackageFolderReader(installPath); return(new DownloadResourceResult(stream, packageReader, source: null) { SignatureVerified = true }); } catch { if (stream != null) { stream.Dispose(); } if (packageReader != null) { packageReader.Dispose(); } throw; } }
public static DownloadResourceResult GetPackage(PackageIdentity packageIdentity, string globalPackagesFolder) { if (packageIdentity == null) { throw new ArgumentNullException(nameof(packageIdentity)); } if (globalPackagesFolder == null) { throw new ArgumentNullException(nameof(globalPackagesFolder)); } var defaultPackagePathResolver = new VersionFolderPathResolver(globalPackagesFolder); var hashPath = defaultPackagePathResolver.GetHashPath(packageIdentity.Id, packageIdentity.Version); if (File.Exists(hashPath)) { var installPath = defaultPackagePathResolver.GetInstallPath( packageIdentity.Id, packageIdentity.Version); var nupkgPath = defaultPackagePathResolver.GetPackageFilePath( packageIdentity.Id, packageIdentity.Version); Stream stream = null; PackageReaderBase packageReader = null; try { stream = File.Open(nupkgPath, FileMode.Open, FileAccess.Read, FileShare.Read); packageReader = new PackageFolderReader(installPath); return(new DownloadResourceResult(stream, packageReader) { SignatureVerified = true }); } catch { if (stream != null) { stream.Dispose(); } if (packageReader != null) { packageReader.Dispose(); } throw; } } return(null); }