3

Is there a way to install earlier version of application (managed package) from appexchange but not the latest one available? Or can it be moved from another sandbox if it's installed/available there?

Thanks

4 Answers 4

4

You cannot downgrade a package that has been already installed to an earlier version. You can only either upgrade or uninstall and reinstall the desired version.

0

If you have the install URL for an older version of the managed package then you can install it assuming that version hasn't been deprecated by the publisher.

The install URL will be something like: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t400000000000

3
  • How could I know the URL to an older version... e.g. I need sf4twitter application (appexchange.salesforce.com/…) but I need R4.2.21 not the latest R4.12.3... have no guess... How could I figure it out?
    – user3486
    Aug 6, 2013 at 10:32
  • During installation from the AppExchange you will be bounced via the install package URL for the current version. E.g. na5.salesforce.com/packaging/… for the current release of sf4twitter. You could trying asking the provider (Salesforce) for the older managed package version. Aug 6, 2013 at 10:38
  • Thank you, Daniel, for your help! In my case it seems to be impossible to install previous version of app after contacting with app provider - they suggest to install and use the latest one since its more stable, bug free and etc.....
    – user3486
    Aug 12, 2013 at 12:47
0

I created a workaround for this matter, if you have the previous version installed in any environment, through this query:

SELECT Id, SubscriberPackageId, SubscriberPackage.NamespacePrefix,
SubscriberPackage.Name, **SubscriberPackageVersion.Id**,
SubscriberPackageVersion.Name, SubscriberPackageVersion.MajorVersion,
SubscriberPackageVersion.MinorVersion,
SubscriberPackageVersion.PatchVersion,
SubscriberPackageVersion.BuildNumber
FROM InstalledSubscriberPackage
ORDER BY SubscriberPackageId

After performing the query and locating the package in question, I get the value of the SubscriberPackageVersion.Id field and assemble the url myself:

Putting ID at the end of the URL to proceed with the installation of the previous version.

https://login.salesforce.com/packaging/installPackage.apexp?p0=**<ID_HERE>**

-1

You can install any version using the MetadataAPI. You need to create a file in the installedPackages directory with the filename in the format of namespace.installedPackage-meta.xml with the contents in the format below

<?xml version="1.0" encoding="UTF-8"?>
<InstalledPackage xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <activateRSS>false</activateRSS>
    <versionNumber>versionNumberOfChoice</versionNumber>
</InstalledPackage>

For example, if I wanted to install v2.66 of the Salesforce Labs timeline component, I create the a file timeline.installedPackage-meta.xml in the installedPackages directory of my package with the contents as below:

<InstalledPackage xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <activateRSS>false</activateRSS>
    <versionNumber>2.66</versionNumber>
</InstalledPackage>

Please note that you cannot downgrade your installed version. You will need to uninstall the newer version if you are planning a downgrade.

1
  • Any non-deprecated version for which you have the password, if any. Also, if you're going so far as to use the API, force:package:install is much more convenient than installedPackage for a modern deployment strategy.
    – sfdcfox
    Jul 26, 2021 at 6:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .