// This method assumes that given arguments are already validated and have valid values. internal static PackageArchive CreatePackageArchive(IntPtr handle, string archivePath) { PackageArchive packageArchive = new PackageArchive(archivePath); var err = Interop.PackageManager.ErrorCode.None; err = Interop.PackageArchive.PackageArchiveInfoGetPackage(handle, out packageArchive._id); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package id from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetType(handle, out packageArchive._type); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package type from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetVersion(handle, out packageArchive._version); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package version from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetApiVersion(handle, out packageArchive._apiVersion); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package api version from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetDescription(handle, out packageArchive._description); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package description from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetLabel(handle, out packageArchive._label); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package label from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetAuthor(handle, out packageArchive._author); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package author from " + archivePath); } err = Interop.PackageArchive.PackageArchiveInfoGetIcon(handle, out packageArchive._icon, out packageArchive._iconSize); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, "Failed to get package author from " + archivePath); } packageArchive._dependency_to = GetPackageArchiveDependencyInformation(handle); return(packageArchive); }
internal static PackageArchive GetPackageArchive(string archivePath) { IntPtr packageArchiveInfoHandle; Interop.PackageManager.ErrorCode err = Interop.PackageArchive.PackageArchiveInfoCreate(archivePath, out packageArchiveInfoHandle); if (err != Interop.PackageManager.ErrorCode.None) { throw PackageManagerErrorFactory.GetException(err, string.Format("Failed to create native handle for package archive info of {0}", archivePath)); } PackageArchive packageArchive = CreatePackageArchive(packageArchiveInfoHandle, archivePath); err = Interop.PackageArchive.PackageArchiveInfoDestroy(packageArchiveInfoHandle); if (err != Interop.PackageManager.ErrorCode.None) { Log.Warn(LogTag, string.Format("Failed to destroy native handle for package archive info of {0}. err = {1}", archivePath, err)); } return(packageArchive); }