Criando novos projetos de biblioteca de Platform-Specific para NuGet
Projetos de Biblioteca multiplataforma direcionados a plataformas específicas, como iOS e Android, funcionam melhor com Projetos Compartilhados.
O NuGet pode conter código específico do iOS e do Android, bem como código .NET comum a ambos.
Vários assemblies são criados e incorporados em um único pacote NuGet. Os padrões do NuGet garantem que o pacote possa ser adicionado a todos os tipos de projeto com suporte, como projetos Xamarin.iOS e Android.
Etapas para criar um NuGet de biblioteca multiplataforma
Selecione Arquivo > Nova Solução (ou clique com o botão direito do mouse em uma solução existente e escolha Adicionar > Novo Projeto).
Escolha Biblioteca multiplataforma na seção Biblioteca Multiplataforma>:
Insira um Nome e uma Descrição e escolha Plataforma específica:
Conclua o assistente. Os seguintes projetos são adicionados à solução:
- Android Project – o código específico do Android pode, opcionalmente, ser adicionado a este projeto.
- Projeto do iOS – o código específico do iOS pode, opcionalmente, ser adicionado a este projeto.
- Projeto NuGet – nenhum código é adicionado a este projeto. Ele faz referência aos outros projetos e contém a configuração de metadados para a saída do pacote NuGet.
-
Projeto Compartilhado – Código comum deve ser adicionado a este projeto, incluindo código específico da plataforma dentro
#if
de diretivas do compilador.
Clique com o botão direito do mouse no projeto NuGet e escolha Opções, abra a seção Metadados do Pacote > NuGet e insira os metadados necessários (bem como os metadados opcionais):
Também na janela Opções do Projeto , abra a seção Assemblies de Referência e escolha quais perfis pcl a biblioteca compartilhada dará suporte por meio de "isca e comutador":
Observação
"Isca e comutador" significa que os assemblies PCL conterão apenas a API exposta pela biblioteca (ela não pode conter o código específico da plataforma). Quando o NuGet for adicionado a um projeto Xamarin, as bibliotecas compartilhadas serão compiladas em relação à PCL, mas os assemblies específicos da plataforma contêm o código que é realmente usado pelo projeto iOS ou Android.
Clique com o botão direito do mouse no projeto e escolha Criar Pacote NuGet (ou compilar ou implantar a solução) e o arquivo de pacote NuGet .nupkg será salvo na pasta /bin/ (depuração ou versão, dependendo da configuração).
Verificando a saída
Os pacotes NuGet também são arquivos ZIP, portanto, é possível inspecionar a estrutura interna do pacote gerado.
Esta captura de tela mostra o conteúdo de um NuGet específico da plataforma que dá suporte a iOS e Android e teve dois assemblies de referência selecionados: