Just to set the right expectations – this blog is intended for Extensions Version 1. In other words, extensions that are:
- developed completely in the well known classic C/SIDE development environment (C/AL).
- created, installed and published with PowerShell
- NOT created in VSCode
The “old” (in these times still “current”) stuff sort of speak ;-).
Why this blogpost?
Currently, we are still able to create Apps for Dynamics 365/AppSource in C/AL.
If we want to get it up to AppSource, a logo is mandatory.
I noticed that quite some people have problems with adding such a logo to the navx-file. And quite frankly, you can’t blame them. It’s not that clear.
Isn’t it just a matter to add it to the Manifest?
You would think so, wouldn’t you? Well, you are right, but it isn’t very straight forward. In PowerShell, you can’t simply add it to the manifest, because the manifest-cmdlets don’t have a “logo” parameter. You would expect one, but there isn’t one.
You would be able to change the “logo” attribute in the Manifest-xml-file. But what do you put there? I have seen people putting a URL there to some kind of web-storage that has the logo stored.
Well – no. No good either. As far as I know, the logo should be part of the extension itself.
So how do I add a logo to my extension then?
Let me explain you the way that I was able to get it to work.
-
Make sure you have a local copy of the logo. Just don’t put it in the same directory as your delta files. You need to reference it separately. In my example, I just placed it in my working folder.
- Do not reference this logo in any manifest-cmdlet. Just create the Manifests without a logo (you won’t be able to do otherwise). But refer to this logo when you are building your NAVX with the New-NAVAppPackage cmdlet, like this:
New-NAVAppPackage ` -Path C:\_Workingfolder\TestLogo\MyApp.navx ` -Manifest (Get-NAVAppManifest C:\_Workingfolder\TestLogo\Manifest.xml) ` -SourcePath C:\_Workingfolder\TestLogo\AppFiles ` -Logo "C:\_Workingfolder\TestLogo\logo.png"
That’s it.
How to test if everything is correct?
I see two ways to test this.
You can test the manifest of the navx file. May be some don’t know, but you can apply the “Get-NAVAppManifest” to a navx as well, like:
Get-NAVAppManifest -Path "C:\_Workingfolder\TestLogo\MyApp.navx"
You’ll see an output like this:
And you can see the “AppLogo” has been filled in. So in the resulting manifest, you do have the logo! I can only assume the logo was added to the navx as well.
Another way to test this, is obviously in the web client, where you can actually see the logo in the “Extension Management” page, like you can see here:
I hope this helps you in your quest to get your app certified for AppSource and Dynamics 365 !