# Install UXP Plugin with own Installer

**URL:** <https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846>\
**Category:** Photoshop\
**Created:** [November 4, 2021, 3:52pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846 "2021-11-04T15:52:08Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [November 4, 2021, 3:52pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/1 "2021-11-04T15:52:08Z")

</div>

Hi all,  
I have a plugin which consists of PS filters, a UXP panel, and several external resources.  
Therefore it has a own installer which installs the complete suite (Setup.exe / Setup.dmg) in one run.

In the CEP days it was easy to install the CEP plug-ins with a own installer. We just put the files in the extension folders:  
Win: C:\Program Files (x86)\Common Files\Adobe\CEP\extensions  
Mac: /Library/Application Support/Adobe/CEP/extensions/

So my questions is: What is the best practice to do the same with a UXP plugin?

According to the [UXP documentation](https://www.adobe.io/photoshop/uxp/distribution/distribution-options/) there are only two ways to install a UXP plugin.  
Either using the Marketplace or using the Creative Cloud App.  
Using the Marketplace makes not really sense for this use case.  
The Creative Cloud App starts a second installer with separate user prompts which would deliver a poor UX.

I found out that I could - as in CEP - just paste the UXP plugin here:  
%appdata%/Adobe/UXP/Plugins/External  
but this would also require to maintain the %appdata%\Adobe\UXP\PluginsInfo\v1 config json which should probably not be touched by users.

I also read ([here](http://forums.creativeclouddeveloper.com/t/command-line-installation-for-ccx-file/3600)) that it is planned to provide a command line support in future. Would this do the job without showing user prompts?

Does someone have any ideas or experiences how to install a UXP Plugin using a own installer?

Kind Regards  
Jens

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [November 4, 2021, 4:45pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/2 "2021-11-04T16:45:03Z")

</div>

As far I know there is some adobe made helper app to install UXP plugins and I think you can pass file path as an argument to install that file. Check file association in Windows registry to find out how double click on extension file works.

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [November 4, 2021, 6:05pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/3 "2021-11-04T18:05:05Z")

</div>

Hi Jarda,  
thanks for your reply and your good idea!

\*. **ccx** launches **UnifiedPluginInstallerAgent.exe**

But if I try to do this manually using

```auto
UnifiedPluginInstallerAgent.exe" /install plugin.ccx

```

It returns  
`Failed to install, status = -410!`

-410 means

```auto
EXMAN_FAILED_INVALID_ZXP_FILE

```

Whis is fair, because it’s not a ZXP file.

According to [this](https://medium.com/adobetech/new-command-line-tool-for-plugin-installation-replaces-exmancmd-c38b4bf9d8e4) article installing \*.ccx is just not yet supported.  
Does someone know the secret syntax to get it running for ccx?

Best Regards  
Jens

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [November 5, 2021, 8:05am UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/4 "2021-11-05T08:05:21Z")

</div>

What if you skip `/install` ? I don’t remember using it.

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [November 5, 2021, 9:50am UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/5 "2021-11-05T09:50:05Z")

</div>

Hi Jarda,  
thanks for your reply!

I also tested it without the` /install` parameter:

```auto
UnifiedPluginInstallerAgent.exe "C:\plugin.ccx"

```

This just terminates the command without any response. (Same if the terminal is launched in Admin mode)

`/help` also doesn’t reveal the secret how to install \*.ccx files.

```auto
UnifiedPluginInstallerAgent.exe /help

```

Kind Regards  
Jens

---

<div class="post-metadata">

**Author:** ![samgannaway](https://avatars.discourse-cdn.com/v4/letter/s/898d66/32.png) [@samgannaway](https://forums.creativeclouddeveloper.com/u/samgannaway)\
**Post date:** [November 8, 2021, 6:24pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/6 "2021-11-08T18:24:01Z")

</div>

If you look in the registry for UnifiedPluginInstallerAgent, you’ll find the entry that has the flag /doubleClick.  
I agree “install” makes more sense. 😄

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [November 8, 2021, 6:57pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/7 "2021-11-08T18:57:40Z")

</div>

Hi Sam,  
many thanks for your reply!

Unfortunately

```auto
UnifiedPluginInstallerAgent.exe /doubleClick "C:\plugin.ccx"

```

is doing the same as directly opening the \*.ccx via CMD…

```auto
"C:\plugin.ccx"

```

… It opens up the Creative Cloud App installer.  
I would like to avoid showing up the CC installer, because I’m already within a installer wizard.  
That’s why I’m searching for a “silent install” option for ccx plugins.

Kind Regards  
Jens

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [November 9, 2021, 1:19am UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/8 "2021-11-09T01:19:56Z")

</div>

Even with silent install… user would need to agree with permission dialog. And that won’t be silent.

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [November 9, 2021, 9:56am UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/9 "2021-11-09T09:56:28Z")

</div>

Hi Jarda,  
thanks again for your reply!

Do you mean the permission dialog from the OS?  
Showing that would be OK. The external installation wizard is already asking for permissions so that we have admin permissions during the installation.

Using that rights I could already paste the plugin to  
`%appdata%/Adobe/UXP/Plugins/External` (and adjust the config JSON `%appdata%\Adobe\UXP\PluginsInfo\v1` )  
to install it silently.  
So showing the CC App dialog wouldn’t be a noteworthy security improvement in this use case.  
But I think it is not wanted from Adobe that users adjust the config JSON manually.

Kind Regards  
Jens

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [November 9, 2021, 12:59pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/10 "2021-11-09T12:59:45Z")

</div>

I think the CC dialog about install would be shown under any circumstances.

Btw I got an “evil” idea… I wonder what happens when you install plugin with zero permissions and change the permissions/pluginID/content afterward 😃 @kerrishotts

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [January 3, 2022, 5:26pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/11 "2022-01-03T17:26:41Z")

</div>

According to the excerpt of @DavideBarranca 's [UXP course](https://www.ps-scripting.com/uxp-react.html), it contains a chapter called:

> 8.2.1 Installer Applications

Can someone give me a tip whether this chapter covers the usage of 3rd party installers?  
In that case I’ll just get the book. The previous CEP book was already a tremendous help.

Best Regards  
Jens

---

<div class="post-metadata">

**Author:** ![DavideBarranca](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/davidebarranca/32/1523_2.png) [@DavideBarranca](https://forums.creativeclouddeveloper.com/u/DavideBarranca)\
**Post date:** [January 3, 2022, 5:50pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/12 "2022-01-03T17:50:02Z")

</div>

Hi Jens,  
I’m afraid it is about the CC Desktop app and it briefly mentions the Unified Plugin Installer Agent (UPIA).  
If you have the need to install additional/external components (e.g. with a dmg/exe), there once was a workaround but I’m pretty sure it’s been removed in more recent versions due to security concerns. Alas the Marketplace isn’t ready to deliver extra files, e.g. like it was possible with CEP thanks to MXI config files, folder tokens, etc. so we’re out of luck.  
@kerrishotts may have more up-to-date news, though!  
Cheers,

Davide

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [January 3, 2022, 7:23pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/13 "2022-01-03T19:23:07Z")

</div>

Check this: [Trello](https://trello.com/c/IKZ7RJW7/22-support-drag-and-drop-of-script-file-and-running-via-file-scripts-browse)

---

<div class="post-metadata">

**Author:** ![Jens\_z](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@Jens\_z](https://forums.creativeclouddeveloper.com/u/Jens_z)\
**Post date:** [January 4, 2022, 6:27pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/14 "2022-01-04T18:27:40Z")

</div>

Hi Davide,  
thanks for your reply! Then I’m curious if Kerri has a tip.

@Jarda The Trello link points to a feature “Drag&Drop for Script files”. Is that the intended link?

Best Regards  
Jens

---

<div class="post-metadata">

**Author:** ![Jarda](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/jarda/32/1909_2.png) [@Jarda](https://forums.creativeclouddeveloper.com/u/Jarda)\
**Post date:** [January 4, 2022, 8:17pm UTC](https://forums.creativeclouddeveloper.com/t/install-uxp-plugin-with-own-installer/3846/15 "2022-01-04T20:17:55Z")

</div>

Yes. This could mean that code could be run without an installation process. I guess.
