Hoje aprendi: Como criar um pacote nupkg a partir de um projeto
Imaginemos um projeto (Class Library) que fornece algum tipo de funcionalidade e usamos a DLL dentro de outros projetos. Isso é comum, porém, quando atualizamos esse Class Library encontramos o problema: Como oferecer essa atualização aos projetos que usam essa DLL ?
A resposta para a pergunta acima é: Criar um pacote nupkg e oferecer em um repositório (pode ser uma pasta local).
Então, como fazer ?
- Faça download do nuget.exe (link para download) e coloque esse executável na sua unidade C:/
- Coloque na raiz do seu projeto (Class Library) um arquivo com a extensão .nuspec (pode ser qualquer nome).
- Coloque o conteúdo abaixo dentro do arquivo .nuspec:
<?xml version="1.0"?><package > <metadata> <id>namespace.do.projeto</id> <version>1.0.0</version> <authors>Nome do autor</authors> <owners>Nome do proprietário</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Descrição do que o projeto se propõe a fazer</description> <releaseNotes>Informação sobre essa versão</releaseNotes> <copyright>Copyright 2017</copyright> <tags>nuspec teste repositório</tags> <dependencies> <dependency id="biblioteca.que.minha.class.library.usa" version="1.00" /> </dependencies> </metadata></package>
- Salve o arquivo e certifique-se de deixar a codificação do arquivo como UTF-8 (assim você evita problemas com acentos).
- Abra o prompt de comando e execute os comandos abaixo:
(em qualquer diretório) cd c:/
(em diretório c:/) nuget.exe pack "C:\pasta\do\seu\projeto\nome.da.solution"
"C:\pasta\do\seu\projeto\nome.da.solution" (é nesse mesmo diretório que seu arquivo .nuspec deve estar)
- Na unidade C:/ será gerado um arquivo .nupkg, copie esse arquivo e cole no diretório que você quer que seja seu repositório. Por exemplo: "C:/nuget_repo/"
- Coloque o endereço "C:/nuget_repo/" como mais uma fonte de pacotes no nuget (no Nuget Package Manager da sua IDE)