Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Необязательные пакеты с исполняемым кодом полезны для деления большого или сложного приложения или добавления в приложение, которое уже опубликовано. С помощью Visual Studio 2017 версии 15.7 и .NET Native 2.1 можно загрузить исполняемый код из дополнительных пакетов C++ и C#.
Необходимые компоненты
- Visual Studio 2019 или Visual Studio 2017 (версия 15.7 или более поздняя версия)
- Windows 10 версии 1709 или более поздней
- Пакет SDK для Windows 10 версии 1709 или более поздней версии
Чтобы получить последние средства разработки, см. статью "Загрузки и инструменты" для Windows 10.
Примечание.
Чтобы отправить приложение, использующее необязательные пакеты и /или связанные наборы в Магазин, вам потребуется разрешение. Необязательные пакеты и связанные наборы можно использовать для бизнес-приложений или корпоративных приложений без разрешения Центра партнеров, если они не отправляются в Магазин. Ознакомьтесь со службой поддержки разработчиков Windows, чтобы получить разрешение на отправку приложения, использующего необязательные пакеты и связанные наборы.
Примечание.
Необязательные пакеты, содержащие исполняемый код, должны быть частью связанного набора. Вы не сможете выполнять код из необязательного пакета, если он не является частью связанного набора.
Необязательные пакеты C++ с исполняемым кодом
Сведения о загрузке кода из необязательного пакета C++ см. в репозитории OptionalPackageSample на GitHub. В файле OptionalPackageDLL показано, как создать проект с кодом, который можно выполнить из основного пакета. Проект MyMainApp демонстрирует загрузку кода из файла OptionalPackageDLL.dll.
Необязательные пакеты C# с исполняемым кодом
Чтобы приступить к созданию необязательного пакета кода в C#, выполните следующие действия, чтобы настроить решение:
Создайте новое приложение UWP с минимальной версией, установленной в пакете SDK для Windows 10 Fall Creators Update (сборка 16299) или более поздней версии.
Добавьте в решение новый проект дополнительного пакета кода (универсальная версия Windows ). Убедитесь, что минимальная версия и целевая версия соответствуют версии основного приложения.
Если вы планируете отправить приложения в Магазин, щелкните правой кнопкой мыши оба проекта и выберите Store —> связать приложение с Магазином...
Package.appxmanifestОткройте файл основного приложения и найдитеIdentity Nameзначение. Запишите это значение для следующего шага.Откройте файл необязательного пакета
Package.appxmanifestприложения и найдитеuap3:MainAppPackageDependency Nameзначение.uap3:MainAppPackageDependency NameОбновите значение, соответствующее значениюIdentity Nameосновного пакета приложения на предыдущем шаге.Ниже приведен пример
Identityиз основного приложенияPackage.appxmanifest.<Identity Name="12345.MainAppProject" Publisher="CN=PublisherName" Version="1.0.0.0" />Необходимо обновить необязательный пакет
uap3:MainPackageDependencyприложения, чтобы он соответствовал основному приложениюIdentity.<uap3:MainPackageDependency Name="12345.MainAppProjectTest" />Добавьте файл в
Bundle.mapping.txtосновное приложение. Выполните действия, описанные в этом разделе "Связанные наборы" , чтобы создать связанный набор, содержащий оба приложения.Создайте необязательный проект пакета, а затем перейдите в папку "Справочник по пакету" в выходных данных сборки, найденной по адресу
..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference. Обратите внимание, что вы можете выбрать любую архитектуру в пути к папке Reference, так как.winmdфайл (шаг 8) является независимым от архитектуры.Добавьте ссылку из основного проекта приложения в файл, найденный
.winmdв этой папке. Каждый раз, когда вы изменяете область поверхности API в необязательном проекте пакета, этот.winmdфайл должен обновляться. Эта ссылка предоставляет основной проект приложения с необходимыми сведениями для компиляции.В основном проекте приложения перейдите к свойствам сборки проекта и выберите " Компиляция с помощью цепочки инструментов .NET Native". В настоящее время только отладка в .NET Native поддерживается для необязательного создания пакета кода в C#. Перейдите к свойствам отладки проекта и выберите " Развернуть необязательные пакеты". Это обеспечит синхронизацию обоих пакетов при развертывании основного проекта приложения.
После завершения этих действий можно добавить код в необязательный проект пакета, как если бы он был управляемым проектом компонента WinRT. Чтобы получить доступ к коду в основном проекте приложения, вызовите общедоступные методы, предоставляемые в необязательном проекте пакета.