Estoy ejecutando .NET Core 1.1.0 en Ubuntu 14.04, con el objetivo de alojar mis API web en Docker en Ubuntu. Quiero compilar mis paquetes en Ubuntu, pero algunas de las referencias de NuGet están alojadas en un repositorio interno de NuGet (Artifactory). Esto funciona bien en VS2015 en Windows después de agregar la fuente del paquete, pero cuando ejecuto:
dotnet restore
en Ubuntu, los paquetes alojados en el repositorio público de NuGet se descargan bien, pero los de Artifactory fallan:
error: Unable to resolve 'Mercury.BaseModel (>= 1.1.0)' for '.NETCoreApp,Version=v1.1'.
Encontré un archivo de configuración de NuGet en \home\<user>\.nuget\NuGet\NuGet.Config
y agregué el repositorio de Artifactory de la siguiente manera:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="3"/> </packageSources> </configuration>
pero sigo recibiendo el mismo error.
NuGet en sí mismo no funciona después de instalar el SDK de .NET Core, estoy usando la dotnet restore
como se mencionó. ¿Hay una configuración similar que debo editar para la CLI de dotnet (que debe usar NuGet?) o ¿hay algo más que deba hacer?
¡Gracias!
La restauración de CLI de Dotnet puede tomar -s como URL de fuente de origen, por lo que si tiene Artifactory con repositorio remoto en nuget.org.
dotnet restore -s https://artifactory.example.com/api/nuget/nuget.org
Referencia :
Después de todo eso, identifiqué rápidamente 2 problemas que había pasado por alto:
sudo -i
para ejecutar como root intentando resolver el problema, como resultado, la configuración de NuGet que configuré en mi carpeta \home no se estaba recuperando.Volviendo a mi propio inicio de sesión, recibí un error:
error: Unable to load the service index for source https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local. error: The content at 'https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local' is not a valid JSON object. error: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
Resulta que nuestro repositorio Artifactory NuGet devuelve XML que es compatible con NuGet v2. Cambié el archivo de configuración para configurar el repositorio como v2 y ahora está funcionando. Entonces, desde arriba, edite el archivo en
\home\<user>\.nuget\NuGet\NuGet.Config
agregando su nueva URL de repositorio, y obtenga la configuración de versión correcta:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="2"/> </packageSources> </configuration>