Pacotes opcionais com código executável
Pacotes opcionais com código executável são úteis para dividir um aplicativo grande ou complexo, ou para adicionar em um aplicativo que já foi publicado. Com o Visual Studio 2017, versão 15.7 e .NET Native 2.1, você pode carregar o código executável dos pacotes opcionais C++ e C#.
Pré-requisitos
- Visual Studio 2019 ou Visual Studio 2017 (versão 15,7 ou posterior)
- Windows 10, versão 1709 ou posterior
- Windows 10, versão 1709 SDK ou posterior
Para obter as ferramentas de desenvolvimento mais recentes, consulte Downloads e ferramentas para Windows 10.
Observação
Para enviar um aplicativo que usa pacotes opcionais e/ou conjuntos relacionados para a Store, você precisará de permissão. Os pacotes opcionais e os conjuntos relacionados podem ser usados para LOB (linha de negócios) ou aplicativos empresariais sem a permissão do Partner Center se não forem enviados para a loja. Consulte Suporte do desenvolvedor Windows para obter permissão para enviar um aplicativo que usa pacotes opcionais e conjuntos relacionados.
Observação
Pacotes opcionais contendo código executável devem fazer parte de um conjunto relacionado. Você não poderá executar o código de um pacote opcional, a menos que ele faça parte de um conjunto relacionado.
Pacotes opcionais do C++ com código executável
Para carregar o código de um pacote opcional do C++, consulte o repositório OptionalPackageSample no GitHub. O OptionalPackageDLL mostra como criar um projeto com um código que pode ser executado a partir do pacote principal. O projeto MyMainApp demonstra como carregar o código a partir do arquivo OptionalPackageDLL.dll.
Pacotes opcionais do C# com código executável
Para começar a criar um pacote opcional de código em C#, siga as etapas a seguir para configurar sua solução:
Crie um novo aplicativo UWP com a versão mínima definida com o SDK do Windows 10 Fall Creators Update (compilação 16299) ou superior.
Adicione um novo projeto de Pacote opcional de código (Universal do Windows) à solução. Certifique-se de que Minimum Version e Target Version correspondem ao do aplicativo principal.
Se você planeja enviar seus aplicativos para a loja, clique com o botão direito do mouse em ambos os projetos e selecione armazenar aplicativo associado com a loja...
Abra o arquivo
Package.appxmanifest
do aplicativo principal e encontre o valorIdentity Name
. Anote esse valor para a próxima etapa.Abra o arquivo
Package.appxmanifest
do pacote opcional do aplicativo e encontre o valoruap3:MainAppPackageDependency Name
. Atualize o valoruap3:MainAppPackageDependency Name
para corresponder ao valor deIdentity Name
do pacote de aplicativo principal da etapa anterior.Veja um exemplo de
Identity
doPackage.appxmanifest
do aplicativo principal.<Identity Name="12345.MainAppProject" Publisher="CN=PublisherName" Version="1.0.0.0" />
O
uap3:MainPackageDependency
do pacote opcional do aplicativo deve ser atualizado para corresponder aIdentity
do aplicativo principal.<uap3:MainPackageDependency Name="12345.MainAppProjectTest" />
Adicione um arquivo
Bundle.mapping.txt
ao aplicativo principal. Siga as etapas na seção Conjuntos relacionados para criar um conjunto relacionado contendo ambos os aplicativos.Compile o projeto do pacote opcional e vá até a pasta de Referência do pacote na saída da compilação encontrada em
..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference
. Observe que você pode escolher qualquer arquitetura no caminho para a pasta de Referência, pois o arquivo.winmd
(etapa 8) não depende de arquitetura.Adicione uma referência de projeto do aplicativo principal para o arquivo
.winmd
encontrado nessa pasta. O arquivo.winmd
.winmd
ser atualizado sempre que você alterar a área de superfície da API no projeto do pacote opcional. Essa referência fornece ao projeto de aplicativo principal as informações necessárias para a compilação.No projeto do aplicativo principal, vá até as propriedades de compilação do projeto e selecione Compilar com a cadeia de ferramenta .NET Native. Atualmente, apenas a depuração no .NET Native é compatível com a criação do pacote opcional de código em C#. Vá até as propriedades de depuração do projeto e selecione Implantar pacotes opcionais. Isso garante que ambos os pacotes são sincronizados sempre que você implantar o projeto do aplicativo principal.
Depois de concluir essas etapas, você poderá adicionar código ao projeto de pacote opcional como se fosse um projeto de componente do WinRT gerenciado. Para acessar o código no projeto do aplicativo principal, chame os métodos públicos expostos no projeto do pacote opcional.