terça-feira, 1 de agosto de 2017

Criando pacote nupkg

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)

Nenhum comentário:

Postar um comentário