O NUPACK é uma maneira fácil de produzir um pacote NUGET para .NET 4.0+ com base em AssemblyInfo ou Nuspec ao construir com o Visual Studio. É materializado como um pacote NUGET.
Quando o Nupack é referência por um projeto, nenhuma dependência é criada, existe apenas uma nova etapa de construção para empacotar automaticamente a saída do projeto em um pacote NUGET com o nome do projeto como ID.
Quando um arquivo .nuspec é detectado como parte do projeto, o Nupack respeita a especificação e não aplica nenhuma configuração automática para produzir o pacote Nuget esperado.
Produza uma biblioteca simples (pasta Lib) com dependências de pacote NUGET. Esse padrão é aplicado automaticamente quando não há arquivo .nuspec detectado para o projeto da biblioteca de tipos.
Quando o pacote é baseado no aplicativo de console e .nuspec não é declarado, um diretório de compilação é definido com um arquivo .Targets para fornecer uma maneira simples de adicionar uma etapa de ação de compilação como postagem com 5 argumentos:
As dependências podem ser pacotes Nuget, referências de projeto, etc ... elas devem ser incluídas recursivamente no pacote Nuget gerado com um formulário adequado.
O processo NUGET não propaga a documentação XML e os recursos de dependência na saída e não pode ser considerada no processo de embalagem do Nupack. Permita que o Nupack os propaga automaticamente ajude a manter uma estrutura e documentação limpas em cada nó.
O Nupack pode fornecer uma biblioteca para desenvolver um plug -in como pacote NUGET. Ele detectará o plug -in do package.config e o carregará da pasta Nupack para adicionar comportamento adicional ao NUPACK. O plug -in será chamado com argumentos passados para o Nupack e produzirá um comprador de pacotes do PackageBuilder original antes de salvar o resultado. O plug -in é descartado após a criação do NUGET.
O NUPACK precisa criar um pacote específico para armazenar o plug -in (biblioteca) na pasta Nupack quando o projeto Reference NuPack.Extension.
Quando o NUPACK é referenciado por um aplicativo de console chamado [biblioteca]. Optimizer e faça referência a uma biblioteca chamada [biblioteca], um padrão de otimizador é feito. O pacote Nuget gerado contém a [biblioteca] .dll na pasta lib e [biblioteca] .Optimizer.exe é colocada na pasta de construção com um arquivo .Targets para executar otimizador no postbuild com os mesmos argumentos que a ação de compilação padrão para o padrão de aplicação do console. O pacote NUGET terá o nome [da biblioteca] como ID. Isso significa que o padrão não é feito se [biblioteca] for um produtor de Nuget. O padrão de otimizador será um ponto de entrada para reescrever IL, por exemplo ou preparar algo baseado no uso [da biblioteca] .dll.
O Visual Studio 2017 alterou o modelo de integração do Nuget. O Nupack deve ser atualizado para apoiar o Visual Studio 2017.
Uma coisa frustrante com Nuget é ter um metadado limpo e completo. Infelizmente, o AssemblyInfo não fornece uma maneira de expor todas as necessidades do NUGET. Por outro lado, muitas vezes é necessário declarar em vários lugares as mesmas informações que causam problemas de sincronização e adicionam uma sobrecarga de manutenção. O uso da API do Github.com para concluir automaticamente a criação do NUGET pode ser uma coisa boa para permanecer reativo.