.NET Core - Bibliotecas de compartilhamento
Neste capítulo, discutiremos como compartilhar sua biblioteca como NuGet Packagepara que possa ser consumido em outro projeto. A criação de um pacote começa com o código que você deseja empacotar e compartilhar com outras pessoas, seja por meio da galeria pública nuget.org ou de uma galeria privada em sua organização. O pacote também pode incluir arquivos adicionais, como umreadme que é exibido quando o pacote é instalado e pode incluir transformações em determinados arquivos de projeto.
Vamos agora considerar um exemplo simples no qual criaremos um pacote NuGet de nossa biblioteca. Para isso, abra o prompt de comando e vá até a pasta onde está localizado o arquivo project.json de seu projeto de biblioteca.
![](https://assets.edu.lat/dotnet_core/images/example.jpg)
Vamos agora executar o seguinte comando.
dotnet help
![](https://assets.edu.lat/dotnet_core/images/command.jpg)
No final, você pode ver diferentes comandos como novo, restaurar e construir, etc.
O último comando é pack;isso criará um pacote NuGet. Vamos agora executar o seguinte comando.
dotnet pack
![](https://assets.edu.lat/dotnet_core/images/execute.jpg)
Agora você pode ver que os pacotes NuGet são produzidos na pasta bin; vamos abrir a pasta bin \ Debug.
![](https://assets.edu.lat/dotnet_core/images/debug_folder.jpg)
Agora a questão é o que está dentro dos pacotes NuGet, para ver que podemos usar o NuGet Package Explorer. Vamos agora abrir o NuGet Package Explorer.
![](https://assets.edu.lat/dotnet_core/images/open_nuget.jpg)
Selecione a primeira opção Open a local package.
![](https://assets.edu.lat/dotnet_core/images/first_option.jpg)
Selecione os StringLibrary.1.0.0.nupkg e clique Open.
![](https://assets.edu.lat/dotnet_core/images/click_ok.jpg)
Você pode ver que na seção Conteúdo do pacote, temos apenas StringLibrary.dll. Na seção de metadados do pacote, você verá um pouco de informação sobre esta biblioteca como Id, Versões e todas as dependências.
Vamos agora abrir o StringLibrary.1.0.0.symbols.nupkg.
![](https://assets.edu.lat/dotnet_core/images/symbols.jpg)
Neste pacote NuGet, você verá os arquivos de origem e o *.pdbarquivo também. Se você clicar duas vezes noStringLib.cs arquivo, você vê o código-fonte também.
![](https://assets.edu.lat/dotnet_core/images/stinglib_cs.jpg)
Aqui a questão é: como configurar os metadados como versão, autores e descrição, etc.
O arquivo project.json é usado em projetos .NET Core para definir metadados de projeto, informações de compilação e dependências. Vamos agora abrir o arquivo project.json e adicionar as seguintes informações adicionais.
{
"authors": [ "Mark Junior" ],
"description": "String Library API",
"version" : "1.0.1-*",
"supports": {},
"dependencies": {
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"System.Runtime.Serialization.Json": "4.0.3",
"System.Runtime.Serialization.Primitives": "4.3.0"
},
"frameworks": {
"netstandard1.3": {}
}
}
Agora você pode ver informações adicionais como nome do autor, descrição e versão adicionadas aqui. Vamos salvar este arquivo, construir o projeto da biblioteca e, em seguida, executar o comando “dotnet pack” novamente.
![](https://assets.edu.lat/dotnet_core/images/dotnet_pack.jpg)
Dentro da pasta bin \ Debug, você pode ver que os pacotes StringLibrary NuGet são produzidos com a versão 1.0.1; vamos abri-lo no NuGet Package Explorer.
![](https://assets.edu.lat/dotnet_core/images/version.jpg)
Você verá os metadados atualizados. A questão agora é: como podemos usá-lo em outro pacote.
Precisamos começar publicando em algum lugar no feed do NuGet e então podemos consumi-lo em outro projeto.
Existem duas opções para publicar os metadados atualizados -
- Publique em nuget.org
- Envie os metadados para o feed NuGet privado
Aqui, usaremos o feed NuGet privado porque é muito mais fácil do que configurar uma conta no nuget.org. Para saber como publicar seu pacote no nuget.org, você pode seguir todas as diretrizes especificadas aquihttps://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package.
Siga estas etapas para enviar os metadados atualizados ao feed NuGet privado.
Step 1- Para começar, precisamos do utilitário de linha de comando nuget e temos que instalá-lo. Vamos agora abrir o Gerenciador de pacotes NuGet e pesquisar nuget.commandline.
Step 2 - Selecione Nuget.Commandline e clique em Install.
![](https://assets.edu.lat/dotnet_core/images/commandline.jpg)
Step 3 - Clique OKpara instalar o Nuget.Commandline. Você também pode instalá-lo manualmente baixando-o do seguinte URLhttps://dist.nuget.org/index.html e, em seguida, configure a variável de ambiente.
![](https://assets.edu.lat/dotnet_core/images/manual_install.jpg)
Step 4 - Assim que a instalação for concluída, vamos abrir o prompt de comando novamente e ir para o bin\Debug pasta onde os pacotes NuGet estão localizados e especifique o seguinte comando -
nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages
Step 5 - No comando acima, adicionamos o pacote StringLibrary.1.0.1.nupkg ao nosso feed privado e a localização é D:\PrivateNugetPackages, -Source especifica a fonte do pacote.
Step 6 - Você pode ver que o StringLibraryestá instalado; aStringLibrary pode ainda ser adicionado ao feed privado.
![](https://assets.edu.lat/dotnet_core/images/private_feed.jpg)
Step 7 - Vamos para essa pasta.
![](https://assets.edu.lat/dotnet_core/images/folder.jpg)
Step 8 - Dentro do stringlibrary pasta, você verá outra pasta com o nome da versão e aqui é 1.0.1.
![](https://assets.edu.lat/dotnet_core/images/version_name.jpg)
O pacote NuGet está localizado aqui.