Распространение управляемого компонента среды выполнения WindowsDistributing a managed Windows Runtime Component

Компоненты среды выполнения Windows можно распространять в виде копий файлов.You can distribute your Windows Runtime Component by file copy. Однако если компонент состоит из большого числа файлов, то его установка может оказаться трудоемкой для пользователей.However, if your component consists of many files, installation can be tedious for your users. Кроме того, ошибки в размещении файлов или неправильное указание ссылок также могут привести к неполадкам.Also, errors in placing files or failure to set references might cause problems for them. Чтобы упростить установку и использование сложного компонента, вы можете поместить его в пакет SDK расширения Visual Studio.You can package a complex component as a Visual Studio extension SDK, to make it easy to install and use. Пользователям нужно лишь указать одну ссылку для всего пакета.Users only need to set one reference for the entire package. Они могут легко найти и установить компонент с помощью диалогового окна расширения и обновления , как описано в разделе Поиск и использование расширений Visual Studio.They can easily locate and install your component by using the Extensions and Updates dialog box, as described in Finding and Using Visual Studio Extensions.

Планирование распространяемого компонента среды выполнения WindowsPlanning a distributable Windows Runtime Component

Выберите уникальные имена для двоичных файлов, таких как файлы .winmd.Choose unique names for binary files, such as your .winmd files. Для обеспечения уникальности мы рекомендуем использовать следующий формат:We recommend the following format to ensure uniqueness:

company.product.purpose.extension
For example: Microsoft.Cpp.Build.dll

Двоичные файлы будут устанавливаться в пакеты приложения, возможно, с двоичными файлами от других разработчиков.Your binary files will be installed in app packages, possibly with binary files from other developers. См. раздел "пакеты SDK расширений" в разделе как создать пакет средств разработки программного обеспечения.See "Extension SDKs" in How to: Create a Software Development Kit.

Чтобы определить способ распространения компонента, оцените его сложность.To decide how to distribute your component, consider how complex it is. Пакет SDK расширения или аналогичный диспетчер пакетов рекомендуется использовать в следующих случаях:An extension SDK or similar package manager is recommended when:

  • компонент состоит из нескольких файлов;Your component consists of multiple files.
  • вы предоставляете версии компонента для нескольких платформ (например, x86 и ARM);You provide versions of your component for multiple platforms (x86 and ARM, for example).
  • вы предоставляете отладочную и окончательную версию компонента;You provide both debug and release versions of your component.
  • компонент содержит файлы и сборки, которые используются только во время разработки.Your component has files and assemblies that are used only at design time.

Пакет SDK расширения особенно полезен, если выполняется несколько из вышеперечисленных условий.An extension SDK is particularly useful if more than one of the above are true.

Примечание    . Для сложных компонентов система управления пакетами NuGet предлагает альтернативный источник пакетов SDK расширений.Note  For complex components, the NuGet package management system offers an open source alternative to extension SDKs. Как и пакеты SDK расширений, NuGet позволяет создавать пакеты, упрощающие установку сложных компонентов.Like extension SDKs, NuGet enables you to create packages that simplify the installation of complex components. Сравнение пакетов NuGet и пакетов SDK расширений Visual Studio см. в разделе Добавление ссылок с помощью NuGet и пакета SDK расширений.For a comparison of NuGet packages and Visual Studio extension SDKs, see Adding References Using NuGet Versus an Extension SDK.

Распространение копий файловDistribution by file copy

Если компонент состоит из одного файла .winmd или файла .winmd и файлов индекса ресурсов (.pri), вы можете просто позволить пользователям копировать файл .winmd.If your component consists of a single .winmd file, or a .winmd file and a resource index (.pri) file, you can simply make the .winmd file available for users to copy. Пользователи могут поместить файл в любое место проекта: добавить его с помощью диалогового окна Добавление существующего элемента, а затем создавать ссылки на него с помощью диалогового окна «Диспетчер ссылок».Users can put the file wherever they want to in a project, use the Add Existing Item dialog box to add the .winmd file to the project, and then use the Reference Manager dialog box to create a reference. Если компонент включает файлы .pri или .xml, укажите пользователям, что эти файлы должны находиться вместе с файлом .winmd.If you include a .pri file or an .xml file, instruct users to place those files with the .winmd file.

Примечание    . Visual Studio всегда создает PRI-файл при сборке компонента среда выполнения Windows, даже если проект не содержит ресурсов.Note  Visual Studio always produces a .pri file when you build your Windows Runtime Component, even if your project doesn't include any resources. Если у вас есть тестовое приложение для компонента, можно определить, используется ли PRI-файл, проверив содержимое пакета приложения в \ папке bin debug \ Appx.If you have a test app for your component, you can determine whether the .pri file is used by examining the contents of the app package in the bin\debug\AppX folder. Если файл .pri из компонента отсутствует в этой папке, то распространять его не нужно.If the .pri file from your component doesn't appear there, you don't need to distribute it. Также вы можете создать дамп файла ресурсов из проекта компонента среды выполнения Windows с помощью средства MakePRI.exe.Alternatively, you can use the MakePRI.exe tool to dump the resource file from your Windows Runtime Component project. Например, в окне командной строки Visual Studio, введите makepri dump /if MyComponent.pri /of MyComponent.pri.xml. Дополнительные сведения о файлах .pri можно найти в разделе Система управления ресурсами (Windows).For example, in the Visual Studio Command Prompt window, type: makepri dump /if MyComponent.pri /of MyComponent.pri.xml You can read more about .pri files in Resource Management System (Windows).

Распространение с помощью пакета SDK расширенияDistribution by extension SDK

Сложный компонент, как правило, включает ресурсы Windows (также ознакомьтесь с примечанием в предыдущем разделе об обнаружении пустых файлов .pri).A complex component usually includes Windows resources, but see the note about detecting empty .pri files in the previous section.

Создание пакета SDK расширенияTo create an extension SDK

  1. Убедитесь, что установлен пакет SDK для Visual Studio.Make sure you have the Visual Studio SDK installed. Пакет SDK для Visual Studio можно скачать на странице загрузок для Visual Studio.You can download the Visual Studio SDK from the Visual Studio Downloads page.

  2. Создайте новый проект с помощью шаблона "Проект VSIX".Create a new project using the VSIX Project template. Шаблон можно найти в папке Visual C# или Visual Basic в категории "Расширение среды".You can find the template under Visual C# or Visual Basic, in the Extensibility category. Этот шаблон устанавливается как часть пакета SDK для Visual Studio.This template is installed as part of the Visual Studio SDK. (в разделе Пошаговое руководство. Создание пакета SDK с использованием C# или Visual Basic или Пошаговое руководство. Создание пакета SDK с использованием C++ демонстрируется использование этого шаблона в очень простом сценарии(Walkthrough: Creating an SDK using C# or Visual Basic or Walkthrough: Creating an SDK using C++, demonstrates the use of this template in a very simple scenario. ))

  3. Определите структуру папок для пакета SDK.Determine the folder structure for your SDK. Структура папок начинается на корневом уровне проекта VSIX, содержащем папки References, Redist и DesignTime.The folder structure begins at the root level of your VSIX project, with the References, Redist, and DesignTime folders.

    • В папке References хранятся двоичные файлы, которые пользователи могут использовать в программировании.References is the location for binary files that your users can program against. Пакет SDK расширения создает ссылки на эти файлы в проектах Visual Studio пользователей.The extension SDK creates references to these files in your users' Visual Studio projects.
    • В папке Redist хранятся все остальные файлы, которые необходимо распространять вместе с двоичными, в приложениях, созданных с использованием вашего компонента.Redist is the location for other files that must be distributed with your binary files, in apps that are created by using your component.
    • DesignTime — это расположение файлов, которые используются, только когда разработчики создают приложения, использующие ваш компонент.DesignTime is the location for files that are used only when developers are creating apps that use your component.

    В каждой из этих папок вы можете создать папки конфигурации.In each of these folders, you can create configuration folders. Допустимые имена: debug, retail и CommonConfiguration.The permitted names are debug, retail, and CommonConfiguration. Папка CommonConfiguration предназначена для файлов, одинаковых как для коммерческой, так и для отладочной сборки.The CommonConfiguration folder is for files that are the same whether they're used by retail or debug builds. Если вы распространяете только коммерческие сборки компонента, вы можете поместить все в папку CommonConfiguration и не создавать другие две папки.If you're only distributing retail builds of your component, you can put everything in CommonConfiguration and omit the other two folders.

    В каждой папке конфигурации вы можете создать папки архитектуры для файлов, относящихся к конкретной платформе.In each configuration folder, you can provide architecture folders for platform-specific files. Если вы используете одни и те же файлы для всех платформ, вы можете создать только одну папку с именем neutral.If you use the same files for all platforms, you can supply a single folder named neutral. Сведения о структуре папок, включая другие имена папок архитектуры, см. в подокне Создание пакета средств разработки программного обеспечения.You can find details of the folder structure, including other architecture folder names, in How to: Create a Software Development Kit. (в этой статье описываются как пакеты SDK платформ, так и пакеты SDK расширений;(That article discusses both platform SDKs and extension SDKs. возможно, имеет смысл свернуть раздел о пакетах SDK платформ, чтобы избежать путаницы)You may find it useful to collapse the section about platform SDKs, to avoid confusion. ))

  4. Создайте файл манифеста пакета SDK.Create an SDK manifest file. В манифесте указаны имя и сведения о версии, архитектуры, поддерживаемые пакетом SDK, версии .NET и другие сведения о том, как Visual Studio использует ваш пакет SDK.The manifest specifies name and version information, the architectures your SDK supports, .NET versions, and other information about the way Visual Studio uses your SDK. Подробную информацию и пример можно найти в разделе Практическое руководство. Создание пакета средств разработки программного обеспечения.You can find details and an example in How to: Create a Software Development Kit.

  5. Выполните сборку и распространите пакет SDK расширения.Build and distribute the extension SDK. Подробные сведения, включая локализацию и подписание пакета VSIX, см. в разделе развертывание VSIX.For in-depth information, including localizing and signing the VSIX package, see VSIX Deployment.