Tengo un paquete que envío a una fuente nuget privada. Luego, algunos otros proyectos hacen referencia a estos paquetes. Todo está bien, excepto cuando especifico un comodín, que solo funciona en vs, pero aparentemente no cuando se restaura a través de una compilación de Azure Devops:
esto funciona:
<PackageReference Include="MyLibPackage" Version="1.0.0.114" />
pero me sale el error de unable to find package
en:
<PackageReference Include="MyLibPackage" Version="*" />
fragmento del dockerfile se ejecuta la tarea de restauración en Azure Devops:
# Install the Credential Provider to configure the access RUN wget -qO- https://raw.githubusercontent.com/Microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh | bash # Configure the environment variables ENV NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED true ENV VSS_NUGET_EXTERNAL_FEED_ENDPOINTS "{\"endpointCredentials\": [{\"endpoint\":\"$feed\", \"password\":\"$pat\"}]}" WORKDIR /src COPY ["MyProject/MyProject.csproj", "MyProject/"] RUN dotnet restore -s "$feed" "MyProject/MyProject.csproj"
Devops de Azure: error NU1101: no se puede encontrar el paquete xxx. No existen paquetes con esta identificación en las fuentes: nuget.org
No tengo mucha experiencia con Docker, no estoy seguro de si este problema proviene del contenedor docker o de la restauración de dotnet.
Pero ya que dijiste en el comentario:
Básicamente, todo, excepto un número de versión duro, falla.
Por lo tanto, me gustaría proporcionar una solución para resolver este problema, puede verificar si funciona para usted:
Como tenemos que usar el número de versión duro, podríamos agregar un comando más para actualizar el paquete a la última versión, la línea de comando como la siguiente:
RUN dotnet add package MyLibPackage -s "$feed"
Y configure WORKDIR en el dockerfile donde está el archivo del proyecto.
@Elger Mensonides, gracias por la contribución de Elger por la línea de comando correcta.
Si no especificamos la versión en la línea de comando, agregará el último paquete al proyecto.
Consulte el documento dotnet CLI: cómo actualizar un paquete NuGet y agregar un nuevo paquete NuGet para obtener algunos detalles.
Espero que esto pueda ayudar.