Публикация надстройки Office в Microsoft AppSource
Опубликуйте надстройку Office в Microsoft AppSource , чтобы сделать ее широко доступной для клиентов и предприятий. Microsoft AppSource — это интернет-магазин, содержащий тысячи бизнес-приложений и служб, созданных ведущими отраслевыми поставщиками программного обеспечения. При публикации надстройки в Microsoft AppSource вы также делаете ее доступной в интерфейсе продукта в Office.
Процесс публикации
Прежде чем продолжить, выполните следующие действия.
- У вас есть учетная запись Центра партнеров.
- Убедитесь, что надстройка соответствует применимым политикам проверки AppSource.
- Убедитесь, что вы готовы к публикации.
Когда вы будете готовы включить решение в Microsoft AppSource и Office, отправьте его в Центр партнеров. Затем он проходит процесс утверждения и сертификации. Полные сведения см. в статье Создание доступности решений в Microsoft AppSource и в Office.
Когда надстройка доступна в AppSource, можно выполнить два дальнейших шага, чтобы сделать ее более широко установленной.
- Укажите ссылку на установку
- Включение надстройки в установку приложения для Windows или надстройки COM или VSTO
Укажите ссылку на установку
После публикации в Microsoft AppSource можно создать ссылку на установку, чтобы помочь клиентам обнаружить и установить надстройку. Ссылка на установку предоставляет интерфейс "щелчок и запуск". Разместите ссылку на своем веб-сайте, в социальных сетях или в любом месте, где вы думаете, поможет вашим клиентам обнаружить вашу надстройку.
Ссылка открывает новый документ Word, Excel или PowerPoint в браузере для вошедшего пользователя. Надстройка автоматически загружается в новый документ, чтобы пользователи могли попробовать надстройку без необходимости искать ее в Microsoft AppSource и устанавливать ее вручную.
Чтобы создать ссылку, используйте следующий шаблон URL-адреса в качестве ссылки.
https://go.microsoft.com/fwlink/?linkid={{linkId}}&templateid={{addInId}}&templatetitle={{addInName}}
Измените три параметра в предыдущем URL-адресе для поддержки надстройки, как показано ниже.
linkId: указывает, какую веб-конечную точку следует использовать при открытии нового документа.
- Для Word в Интернете:
2261098
- Для Excel в Интернете:
2261819
- Для PowerPoint в Интернете:
2261820
Заметка: Outlook в настоящее время не поддерживается.
- Для Word в Интернете:
templateid: идентификатор надстройки, как указано в Microsoft AppSource.
templatetitle: полное название надстройки. Он должен быть закодирован в ФОРМАТЕ HTML.
Например, если вы хотите указать ссылку на установку для Script Lab, используйте следующую ссылку.
Для ссылки установки Script Lab используются следующие значения параметров.
-
linkid: Значение
2261819
указывает конечную точку Excel. Script Lab поддерживает Word, Excel и PowerPoint, поэтому это значение можно изменить для поддержки разных конечных точек. -
templateid: Значением
WA104380862
является идентификатор Microsoft AppSource для Script Lab. -
templatetitle: Значение
Script%20Lab,%20a%20Microsoft%20Garage%20project
, являющееся html-значением заголовка.
Включение надстройки в установку приложения для Windows или надстройки COM/VSTO
Если у вас есть приложение Windows или надстройка COM или VSTO, функции которых пересекаются с веб-надстройкой Office, рассмотрите возможность включения веб-надстройки в установку (или обновление) приложения Windows или надстройки COM/VSTO. (Этот вариант установки поддерживается только для надстроек Excel, PowerPoint и Word.) Процесс этого зависит от того, являетесь ли вы сертифицированным разработчиком Microsoft 365. Дополнительные сведения см. в разделах Программа соответствия приложений Microsoft 365 и Общие сведения о программе соответствия приложений Microsoft 365.
Для этого нужно выполнить вот какие основные действия:
- Присоединиться к программе сертификации (рекомендуется)
- Обновление исполняемого файла установки (обязательно)
Присоединиться к программе сертификации (рекомендуется)
Рекомендуется присоединиться к программе сертификации разработчиков. Помимо прочего, это позволит программе установки работать более гладко. Дополнительные сведения см. в следующих статьях:
- Начало работы в Центре партнеров для приложений Microsoft 365, Teams, SaaS и SharePoint
- Программа соответствия приложений Microsoft 365 требованиям
- Общие сведения о программе соответствия приложений Microsoft 365
- Общие сведения о примерах примеров подтверждения сертификации Microsoft 365
Обновление исполняемого файла установки (обязательно)
Ниже приведены шаги по обновлению исполняемого файла установки.
- Убедитесь, что версия Office пользователя поддерживает надстройки (рекомендуется)
- Проверка отключения AppSource (рекомендуется)
- Создание раздела реестра для надстройки (обязательно)
- Включение условий конфиденциальности в условия & (требуется для сертифицированных разработчиков)
Убедитесь, что версия Office пользователя поддерживает веб-надстройки (рекомендуется)
Рекомендуется проверка, установлено ли у пользователя приложение Office (Excel, PowerPoint или Word) и является ли приложение Office сборкой, поддерживающей включение веб-надстройки в установку приложения Windows. Если это старая версия, которая не поддерживает веб-надстройки, программа установки должна пропустить все оставшиеся шаги. Рассмотрите возможность отображения пользователю сообщения, в котором рекомендуется установить или обновить до последней версии Microsoft 365, чтобы он смог воспользоваться преимуществами вашей веб-надстройки. Им потребуется повторно запустить установку после установки или обновления.
Точный код зависит от платформы установки и используемого языка программирования. Ниже приведен пример проверка с помощью 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;
}
}
}
}
Проверка отключения AppSource (рекомендуется)
Рекомендуется проверка, отключен ли магазин AppSource в приложении Office пользователя. Администраторы Microsoft 365 иногда отключают хранилище. Если хранилище отключено, программа установки должна пропустить все оставшиеся шаги. Рассмотрите возможность отображения пользователю сообщения, в котором рекомендуется обратиться к администратору по поводу веб-надстройки. Им потребуется повторно запустить установку после включения хранилища.
Ниже приведен пример проверка для отключения хранилища.
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;
}
}
}
}
Создание раздела реестра для надстройки (обязательно)
Включите в программу установки функцию, чтобы добавить запись, как показано в следующем примере, в реестр Windows.
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\{{OfficeApplication}}\{{add-inName}}]
"AssetIds"="{{assetId}}"
Замените заполнители следующим образом:
{{OfficeApplication}}
с именем приложения Office, в котором должна быть установлена надстройка. Поддерживаются толькоWord
,Excel
иPowerPoint
.Примечание.
Если манифест надстройки настроен для поддержки нескольких приложений Office, замените
{{OfficeApplication}}
любым из поддерживаемых приложений. Не создавайте отдельные записи реестра для каждого поддерживаемого приложения. Надстройка будет установлена для всех поддерживаемых ею приложений Office.{{add-inName}}
с именем надстройки; напримерContosoAdd-in
.{{assetId}}
с идентификатором ресурса AppSource надстройки, напримерWA999999999
.
Ниже приведен пример.
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\Word\ContosoAdd-in]
"AssetIds"="WA999999999"
Точный код будет зависеть от платформы установки и языка программирования. Ниже приведен пример на 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);
}
}
}
}
}
Включение условий конфиденциальности в условия & (требуется для сертифицированных разработчиков)
Пропустите этот раздел, если вы не являетесь участником программы сертификации, но если вы являетесь обязательным.
Включите в код программы установки, чтобы добавить запись, как показано в следующем примере, в реестр Windows.
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\{{OfficeApplication}}\{{add-inName}}]
"HasPrivacyLink"="1"
Замените {{OfficeApplication}}
заполнители и {{add-inName}}
точно так же, как в предыдущем разделе. Ниже приведен пример.
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Wef\AutoInstallAddins\Word\ContosoAdd-in]
"HasPrivacyLink"="1"
Чтобы реализовать это, просто внесите два небольших изменения в пример кода в предыдущем разделе.
В список объектов
const
в верхней частиWriteRegistryKeys
метода добавьте следующую строку:const string hasPrivacyLinkStr = "HasPrivacyLink"; // Indicates that your installer has a privacy link.
Сразу под строкой
AddInNameKey.SetValue(assetIdStr, assetID);
добавьте следующие строки:// 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);
Интерфейс установки пользователя
Когда пользователь запускает исполняемый файл установки, его взаимодействие с установкой веб-надстройки будет зависеть от двух факторов.
- Являетесь ли вы сертифицированным разработчиком Microsoft 365.
- Параметры безопасности, заданные администратором Microsoft 365 пользователя.
Если вы сертифицированы и администратор включил автоматическое утверждение для всех приложений от сертифицированных разработчиков, веб-надстройка устанавливается без каких-либо специальных действий со стороны пользователя после запуска исполняемого файла установки. Если вы не сертифицированы или администратор не предоставил автоматическое утверждение для всех приложений от сертифицированных разработчиков, пользователю будет предложено утвердить включение веб-надстройки в рамках общей установки. После установки веб-надстройка будет доступна пользователю в Office в Интернете а также Office в Windows.
Если вы объединяете установку веб-надстройки с надстройкой COM/VSTO, необходимо подумать о связи между ними. Дополнительные сведения см. в статье Совместимость надстройки Office с существующей надстройкой COM.
Связанные материалы
Office Add-ins