Partager via


Publier votre complément Office sur Microsoft AppSource

Publiez votre complément Office sur Microsoft AppSource pour le rendre largement disponible pour les clients et les entreprises. Microsoft AppSource est un magasin en ligne qui contient des milliers d’applications métier et de services créés par des fournisseurs de logiciels de pointe. Lorsque vous publiez votre complément sur Microsoft AppSource, vous le rendez également disponible dans l’expérience intégrée au produit dans Office.

Processus de publication

Avant de continuer :

Lorsque vous êtes prêt à inclure votre solution dans Microsoft AppSource et dans Office, envoyez-la à l’Espace partenaires. Ensuite, il passe par un processus d’approbation et de certification. Pour plus d’informations, voir Rendre vos solutions disponibles dans Microsoft AppSource et dans Office.

Lorsque votre complément est disponible dans AppSource, vous pouvez effectuer deux étapes supplémentaires pour le rendre plus largement installé.

Après avoir publié sur Microsoft AppSource, vous pouvez créer un lien d’installation pour aider les clients à découvrir et à installer votre complément. Le lien d’installation fournit une expérience « cliquer et exécuter ». Placez le lien sur votre site web, sur les réseaux sociaux ou partout où vous pensez aider vos clients à découvrir votre complément.

Le lien ouvre un nouveau document Word, Excel ou PowerPoint dans le navigateur pour l’utilisateur connecté. Votre complément est automatiquement chargé dans le nouveau document afin que vous puissiez guider les utilisateurs à essayer votre complément sans avoir à le rechercher dans Microsoft AppSource et à l’installer manuellement.

Pour créer le lien, utilisez le modèle d’URL suivant comme référence.

https://go.microsoft.com/fwlink/?linkid={{linkId}}&templateid={{addInId}}&templatetitle={{addInName}}

Modifiez les trois paramètres de l’URL précédente pour prendre en charge votre complément comme suit.

  • linkId : spécifie le point de terminaison web à utiliser lors de l’ouverture du nouveau document.

    • Pour Word sur le web :2261098
    • Pour Excel sur le Web :2261819
    • Pour PowerPoint sur le web :2261820

    Note: Outlook n’est pas pris en charge pour l’instant.

  • templateid : ID de votre complément tel qu’indiqué dans Microsoft AppSource.

  • templatetitle : titre complet de votre complément. Il doit être encodé au format HTML.

Par exemple, si vous souhaitez fournir un lien d’installation pour Script Lab, utilisez le lien suivant.

https://go.microsoft.com/fwlink/?linkid=2261819& templateid=WA104380862&templatetitle=Script%20Lab,%20a%20Microsoft%20Garage%20project

Les valeurs de paramètre suivantes sont utilisées pour le lien d’installation Script Lab.

  • linkid : La valeur 2261819 spécifie le point de terminaison Excel. Script Lab prend en charge Word, Excel et PowerPoint. Cette valeur peut donc être modifiée pour prendre en charge différents points de terminaison.
  • templateid : La valeur WA104380862 est l’ID Microsoft AppSource pour Script Lab.
  • templatetitle : Valeur Script%20Lab,%20a%20Microsoft%20Garage%20project qui est la valeur encodée HTML du titre.

Inclure le complément dans l’installation d’une application Windows ou d’un complément COM/VSTO

Lorsque vous disposez d’une application Windows ou d’un complément COM ou VSTO dont les fonctions se chevauchent avec votre complément web Office, envisagez d’inclure le complément web dans l’installation (ou une mise à niveau) de l’application Windows ou du complément COM/VSTO. (Cette option d’installation est prise en charge uniquement pour les compléments Excel, PowerPoint et Word.) Le processus pour effectuer cette opération varie selon que vous êtes ou non un développeur Microsoft 365 certifié. Pour plus d’informations, consultez Programme de conformité des applications Microsoft 365 et Vue d’ensemble du programme de conformité des applications Microsoft 365.

Voici les étapes de base à suivre :

  1. Rejoindre le programme de certification (recommandé)
  2. Mettre à jour votre exécutable d’installation (obligatoire)

Nous vous recommandons de rejoindre le programme de certification des développeurs. Entre autres choses, cela permettra à votre programme d’installation de s’exécuter plus facilement. Si vous souhaitez en savoir plus, consultez les articles suivants :

Mettre à jour votre exécutable d’installation (obligatoire)

Voici les étapes de mise à jour de votre exécutable d’installation.

  1. Vérifier que la version d’Office de l’utilisateur prend en charge les compléments (recommandé)
  2. Rechercher la désactivation d’AppSource (recommandé)
  3. Créer une clé de Registre pour le complément (obligatoire)
  4. Inclure les conditions de confidentialité dans vos conditions générales & (obligatoire pour les développeurs certifiés)

Nous vous recommandons de case activée si l’application Office (Excel, PowerPoint ou Word) est installée pour l’utilisateur et si l’application Office est une build qui prend en charge l’inclusion d’un complément web dans une installation d’application Windows. S’il s’agit d’une ancienne version qui ne prend pas en charge les compléments web, le programme d’installation doit ignorer toutes les étapes restantes. Envisagez d’afficher un message à l’utilisateur qui recommande d’installer ou de mettre à jour vers la dernière version de Microsoft 365 afin qu’il puisse tirer parti de votre complément web. Ils doivent réexécuter l’installation après l’installation ou la mise à niveau.

Le code exact nécessaire dépend de l’infrastructure d’installation et du langage de programmation que vous utilisez. Voici un exemple montrant comment case activée à l’aide de C#.

using Microsoft.Win32;
using System;

namespace SampleProject
{
    internal class IsBuildSupportedSample
    {
        /// <summary>
        /// This function checks if the build of the Office application supports web add-ins. 
        /// </summary>
        /// <returns> Returns true if the supported build is installed, and false if an old, unsupported build is installed or if the app is not installed at all.</returns>
        private bool IsBuildSupported()
        {
            RegistryKey hklm = Registry.CurrentUser;
            string basePath = @"Software\Microsoft\Office";
            RegistryKey baseKey = Registry.CurrentUser.OpenSubKey(basePath);
            string wxpName = "Word"; // Can be one of "Word", "Powerpoint", or "Excel".


            const string buildNumberStr = "BuildNumber"; 
            const int smallBuildNumber = 18227; // This is the minimum build that supports installation of a web add-in in the installation of a Windows app.
            const int supportedBuildMajorNumber = 16; // 16 is the lowest major build of Office applications that supports web add-ins.

            if (baseKey != null)
            {
                Version maxVersion = new Version(supportedBuildMajorNumber, 0); // Initial value for the max supported build version
                foreach (string subKeyName in baseKey.GetSubKeyNames())
                {
                    if (Version.TryParse(subKeyName, out Version version))
                    {
                        if (version > maxVersion)
                        {
                            maxVersion = version;
                        }
                    }
                }

                string maxVersionString = maxVersion.ToString();
                // The Office application's build number is under this path.
                RegistryKey buildNumberKey = hklm.OpenSubKey(String.Format(@"Software\Microsoft\\Office\{0}\\Common\Experiment\{1}", maxVersionString, wxpName));

                if (maxVersion.Major >= supportedBuildMajorNumber && buildNumberKey != null)
                {
                    object buildNumberValue = buildNumberKey.GetValue(buildNumberStr);
                    if (buildNumberValue != null && Version.TryParse(buildNumberValue.ToString(), out Version version))
                    {
                        if (version.Major > supportedBuildMajorNumber || (version.Major == supportedBuildMajorNumber && version.Build >= smallBuildNumber))
                        {
                            // Build is supported
                            return true;
                        }
                        else
                        {
                            // Office is installed, but the build is not supported.
                            return false;
                        }
                    }
                    else
                    {
                        // There is no build number, which is an abnormal case.
                        return false;
                    }
                }
                else
                {
                    // An old version is installed.
                    return false;
                }
            }
            else
            {
                // Office is not installed.
                return false;
            }
        }
    }
}

Nous vous recommandons de case activée si le magasin AppSource est désactivé dans l’application Office de l’utilisateur. Les administrateurs Microsoft 365 désactivent parfois le magasin. Si le magasin est désactivé, le programme d’installation doit ignorer toutes les étapes restantes. Envisagez d’afficher un message à l’utilisateur qui lui recommande de contacter son administrateur au sujet de votre complément web. Ils doivent réexécuter l’installation une fois le magasin activé.

Voici un exemple montrant comment case activée pour désactiver le magasin.

using Microsoft.Win32;
using System;

namespace SampleProject
{
    internal class IsStoreEnabledSample
    {
        /// <summary>
        /// This function checks if the store is enabled.
        /// </summary>
        /// <returns> Returns true if it store is enabled, false if store is disabled.</returns>
        private bool IsStoreEnabled()
        {
            RegistryKey hklm = Registry.CurrentUser;
            string basePath = @"Software\Microsoft\Office";
            RegistryKey baseKey = Registry.CurrentUser.OpenSubKey(basePath);
            const int supportedBuildMajorNumber = 16;

            if (baseKey != null)
            {
                Version maxVersion = new Version(supportedBuildMajorNumber, 0); // Initial value for the maximum supported build version.
                foreach (string subKeyName in baseKey.GetSubKeyNames())
                {
                    if (Version.TryParse(subKeyName, out Version version))
                    {
                        if (version > maxVersion)
                        {
                            maxVersion = version;
                        }
                    }
                }

                string maxVersionString = maxVersion.ToString();

                // The StoreDisabled value is under this registry path.
                string antoInstallPath = String.Format(@"Software\Microsoft\Office\{0}\Wef\AutoInstallAddins", maxVersionString);
                RegistryKey autoInstallPathKey = Registry.CurrentUser.OpenSubKey(autoInstallPath);

                if (autoInstallPathKey != null)
                {
                    object storedisableValue = autoInstallPathKey.GetValue("StoreDisabled");

                    if (storedisableValue != null)
                    {
                        int value = (int)storedisableValue;
                        if (value == 1)
                        {
                            // Store is disabled
                            return false;
                        }
                        else
                        {
                            // Store is enabled
                            return true;
                        }
                    }
                    else
                    {
                        // No such key exists since the build does not have the value, so the store is enabled.
                        return true;
                    }
                }
                else
                {
                    // The registry path does not exist, so the store is enabled.
                    return true;
                }
            }
            else
            {
                // Office is not installed at all.
                return false;
            }
        }
    }
}
Créer une clé de Registre pour le complément (obligatoire)

Incluez dans le programme d’installation une fonction pour ajouter une entrée comme l’exemple suivant au Registre Windows.

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\{{OfficeApplication}}\{{add-inName}}] 
"AssetIds"="{{assetId}}"

Remplacez les espaces réservés comme suit :

  • {{OfficeApplication}} par le nom de l’application Office dans laquelle le complément doit être installé. Seuls Word, Excelet PowerPoint sont pris en charge.

    Remarque

    Si le manifeste du complément est configuré pour prendre en charge plusieurs applications Office, remplacez par {{OfficeApplication}}l’une des applications prises en charge. Ne créez pas d’entrées de Registre distinctes pour chaque application prise en charge. Le complément sera installé pour toutes les applications Office qu’il prend en charge.

  • {{add-inName}} par le nom du complément ; par exemple ContosoAdd-in.

  • {{assetId}} avec l’ID de ressource AppSource de votre complément, par exemple WA999999999.

Voici un exemple.

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\Word\ContosoAdd-in] 
"AssetIds"="WA999999999"

Le code exact dépend de votre infrastructure d’installation et de votre langage de programmation. Voici un exemple en C#.

using Microsoft.Win32;
using System;

namespace SampleProject
{
   internal class WriteRegisterKeysSample
   {
       /// <summary>
       /// This function writes information to the registry that will tell Office applications to install the web add-in.
       /// </summary>
       private void WriteRegisterKeys()
       {
           RegistryKey hklm = Registry.CurrentUser;
           string basePath = @"Software\Microsoft\Office";
           RegistryKey baseKey = Registry.CurrentUser.OpenSubKey(basePath);
           string wxpName = "Word";  // Can be one of "Word", "Powerpoint", or "Excel".
           string assetID = "WA999999999"; // Use the AppSource asset ID of your web add-in.
           string appName = "ContosoAddin"; // Pass your own web add-in name.
           const int supportedBuildMajorNumber = 16; // Major Office build numbers before 16 do not support web add-ins.
           const string assetIdStr = "AssetIDs"; // A registry key to indicate that there is a web add-in to install along with the main app.

           if (baseKey != null)
           {
               Version maxVersion = new Version(supportedBuildMajorNumber, 0); // Initial value for the max supported build version.
               foreach (string subKeyName in baseKey.GetSubKeyNames())
               {
                   if (Version.TryParse(subKeyName, out Version version))
                   {
                       if (version > maxVersion)
                       {
                           maxVersion = version;
                       }
                   }
               }

               string maxVersionString = maxVersion.ToString();

               // Create the path under AutoInstalledAddins to write the AssetIDs value.
               RegistryKey AddInNameKey = hklm.CreateSubKey(String.Format(@"Software\Microsoft\Office\{0}\Wef\AutoInstallAddins\{1}\{2}", maxVersionString, wxpName, appName));
               if (AddInNameKey != null)
               {
                   AddInNameKey.SetValue(assetIdStr, assetID);
               }
           }
       }
   }
}
Inclure les conditions de confidentialité dans vos conditions générales & (obligatoire pour les développeurs certifiés)

Ignorez cette section si vous n’êtes pas membre du programme de certification, mais qu’elle est obligatoire si vous l’êtes.

Incluez dans le code du programme d’installation pour ajouter une entrée comme l’exemple suivant au Registre Windows.

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\{{OfficeApplication}}\{{add-inName}}] 
"HasPrivacyLink"="1"

Remplacez les {{OfficeApplication}} espaces réservés et {{add-inName}} exactement comme dans la section précédente. Voici un exemple.

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\Word\ContosoAdd-in] 
"HasPrivacyLink"="1"

Pour implémenter cela, il vous suffit d’apporter deux petites modifications à l’exemple de code de la section précédente.

  1. À la liste de consts en haut de la WriteRegistryKeys méthode, ajoutez la ligne suivante :

    const string hasPrivacyLinkStr = "HasPrivacyLink"; // Indicates that your installer has a privacy link.
    
  2. Juste en dessous de la ligne AddInNameKey.SetValue(assetIdStr, assetID);, ajoutez les lignes suivantes :

    // Set this value if the Privacy Consent has been shown on the main app installation program, this is required for a silent installation of the web add-in.
    AddInNameKey.SetValue(hasPrivacyLinkStr, 1);
    

Expérience d’installation de l’utilisateur

Lorsqu’un utilisateur final exécute votre exécutable d’installation, son expérience avec l’installation du complément web dépend de deux facteurs.

Si vous êtes certifié et que l’administrateur a activé l’approbation automatique pour toutes les applications de développeurs certifiés, le complément web est installé sans que l’utilisateur ait besoin d’une action spéciale après le démarrage de l’exécutable d’installation. Si vous n’êtes pas certifié ou si l’administrateur n’a pas accordé d’approbation automatique pour toutes les applications des développeurs certifiés, l’utilisateur est invité à approuver l’inclusion du complément web dans le cadre de l’installation globale. Après l’installation, le complément web est disponible pour l’utilisateur dans Office sur le Web ainsi qu’Office sur Windows.

Si vous combinez l’installation d’un complément web avec un complément COM/VSTO, vous devez réfléchir à la relation entre les deux. Pour plus d’informations, voir Rendre votre complément Office compatible avec un complément COM existant.