por Cesar Cassiano Schimanco

Criar seu próprio servidor NuGet (NuGet.Server)

Pode ser interessante para algumas empresas e desenvolvedores criar seus próprios pacotes NuGet e hospedá-los em seu servidor local. Assim seu código fica protegido e pode continuar utilizando toda a praticidade do NuGet. A ideia é compartilhar, mas caso tenha algum código protegido ou algo do gênero, esta é uma boa alternativa.

Neste artigo vou mostrar como é simples criar um servidor NuGet é no final do artigo está o link para download do projeto completo.

Para facilitar o trabalho, vamos utilizar o pacote NuGet.Server. Então abra o Visual Studio e crie um novo web site vazio.

Menu File, selecione New Web Site.
Na lista de modelos, selecione ASP.NET Empty Web Site. Digite um nome do projeto e clique em OK.


 

Agora no Solution Explorer, clique com o botão direito sobre o projeto e selecione Manage NuGet Packages.

 


O NuGet vai abrir, ai clique na aba on-line e, em seguida, digite NuGet.Server no campo de busca do canto superior direito.
O NuGet.Server vai aparecer no resultado, então clique em Install e aceite os termos.

 

Se preferir, utilize o comando abaixo no console para instalar o pacote NuGet.Server.
Install-Package NuGet.Server

Depois de instalado o resultado é este:

 

E no browser é este:

 

Observação. A versão v2.7.41101 do NuGet.Server, que foi utilizada neste exemplo, não está registrando as rotas e retorna o erro 404 na listagem de pacotes. Para corrigir isso, Crie um novo Global.asax e insira o seguinte código no Application_Start :

void Application_Start(object sender, EventArgs e)
{
    NuGetRoutes.Start();
}

Download do Global.asax aqui.

Por padrão, os pacotes são armazenados no diretório /Packages e podem ser acessados nesta URL:

http://localhost:54932/nuget/Packages

É possível modificar o o diretório padrão dos pacotes, basta editar a chave packagesPath no AppSetting do Web.config.

<appSettings>
    <add key="packagesPath" value="C:\NugetPackages" />
</appSettings>

Como não temos nenhum pacote instalado o resultado ao acessar a URL será este:

 



Como publicar pacotes (.nupkg) em nosso servidor NuGet

São basicamente duas formas.
A primeira opção é simplesmente copiar e colar, ou passar via FTP os pacotes (.nupkg) para dentro do diretório Packages.

A segunda é habilitar a publicação de pacotes usando a ferramenta de linha de comando nuget (NuGet.exe). Para isso é preciso definir a chave apiKey no AppSetting do web.config e certificar-se de que a chave requireApiKey está com o valor true.

Veja o exemplo utilizando 7a291830-0924-495c-ba18-566c158a112d como apiKey.

<?xml version="1.0"?>
<configuration>
  ...
  <appSettings>
    <add key="requireApiKey" value="true"/>
    <add key="apiKey" value="7a291830-0924-495c-ba18-566c158a112d"/>
    ...
  </appSettings>
</configuration>

Adicionei manualmente um novo pacote chamado cbsa.1.0.8.nupkg veja como ficou:

 

http://localhost:54932/nuget/Packages:

 

 

Nosso servidor está pronto e funcioando. Faça download do projeto completo aqui.


Veja como configurar o NuGet.Server no IIS (Internet Information Services)
http://cbsa.com.br/post/configurar-o-nugetserver-no-iis-internet-information-services.aspx
 

E para configurar o novo servidor NuGet no Visual Studio acesse o artigo abaixo.
http://cbsa.com.br/post/adicionar-mais-origens-servidores-de-pacotes-nuget---visual-studio.aspx

 

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...