UiPath Documentation
cicd-integrations
2025.10
true
Guide de l'utilisateur des intégrations CI/CD
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Gestion des flux NuGet

Configurez les flux NuGet pour UiPath CLI afin de contrôler la façon dont les dépendances des packages sont résolues.

Cette page décrit les trois paramètres CLI qui contrôlent les flux NuGet uipcli consultés lors de la résolution des dépendances de packages, et montre comment utiliser chacun d'eux.

Les mêmes paramètres s'appliquent aux projets RPA autonomes et aux solutions.

Comment uipcli résout les flux

Par défaut, uipcli résout les packages de trois sources, fusionnées dans cet ordre:

  1. Flux intégrés livrés avec la CLI:
    • https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json
    • https://gallery.uipath.com/api/v2
    • https://api.nuget.org/v3/index.json
    • C:\Program Files\Microsoft SDKs\NuGetPackages (si ce chemin se trouve sur l'agent actuel)
    • C:\Program Files (x86)\Microsoft SDKs\NuGetPackages (si ce chemin se trouve sur l'agent actuel)
  2. Configuration de NuGet au niveau de l'hôte sur la machine exécutant la CLI, généralement %AppData%\NuGet\NuGet.Config (au niveau utilisateur) et %ProgramFiles(x86)%\NuGet\Config (au niveau de la machine).
  3. Un nuget.configpersonnalisé que vous transmettez --nugetConfigFilePath

Trois paramètres vous permettent de personnaliser cette résolution par défaut:

ParamètreCe qu’il contrôle
--nugetConfigFilePathAjoute les flux d'un fichier nuget.config que vous fournissez.
--disableBuiltInNugetFeedsDépose la couche 1 (les flux intégrés).
--excludeConfiguredSourcesDétache les couches 1 et 2. Seuls les --nugetConfigFilePath flux restent.

Lorsque vous exécutez uipcli avec un fichier de configuration, chaque paramètre a un équivalent en style JSON: "nugetConfigFilePath": "...", "disableBuiltInNugetFeeds": true, "excludeConfiguredSources": true.

Ajout de flux personnalisés avec --nugetConfigFilePath

--nugetConfigFilePath pointe la CLI vers un fichier nuget.config dont vous souhaitez inclure le fichier <packageSources> dans la résolution des dépendances. Il s'agit de la principale façon d'ajouter un flux privé (entreprise ProGet, Artifactory, Azure Artifacts, Nexus interne, etc.) sans modifier quoi que ce soit sur l'agent de développement.

Le fichier suit le schéma NuGet standard:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="MyCustomFeed" value="https://my.corp.example/nuget/v3/index.json" />
  </packageSources>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="MyCustomFeed" value="https://my.corp.example/nuget/v3/index.json" />
  </packageSources>
</configuration>

Passez le chemin sur la ligne de commande:

uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config"
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config"

À partir de la version 25.10.18, le fichier est respecté de bout en bout — la CLI le transmet au WorkflowCompiler, qui le charge directement via les bibliothèques NuGet. Les directives suivantes sont toutes appliquées:

InstructionsEffet
<clear /> À l'intérieur <packageSources>Dépose la liste héritée des sources (flux intégrés et configuration au niveau de l’hôte) avant que le reste du fichier ne soit appliqué.
<packageSourceCredentials>Informations d’identification par source. L’authentification de base par rapport aux flux privés (JFrog, Sonatype Nexus, artefacts Azure internes, etc.) est gérée par le pipeline HTTP natif de NuGet, qui comprend 401 défis.
<packageSourceMapping>Limite les ID de package (ou les préfixes d’ID) qui peuvent être résolus à partir de quelles sources.
<fallbackPackageFolders>Ajoute des dossiers locaux que NuGet consultez avant d'accéder au réseau. Utile pour les constructions physiquement isolées.

Flux privé authentifié (JFrog, Nexus, artefacts Azure internes)

Déclarez la source et ses informations d’identification dans le même fichier. La CLI ne nécessite pas de paramètres supplémentaires — le client NuGet récupère automatiquement les informations d'identification lorsqu'il rencontre la source correspondante:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" protocolVersion="3" />
  </packageSources>

  <packageSourceCredentials>
    <UiPath-Internal>
      <add key="Username" value="ci-bot" />
      <add key="ClearTextPassword" value="%ARTIFACTORY_TOKEN%" />
    </UiPath-Internal>
  </packageSourceCredentials>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" protocolVersion="3" />
  </packageSources>

  <packageSourceCredentials>
    <UiPath-Internal>
      <add key="Username" value="ci-bot" />
      <add key="ClearTextPassword" value="%ARTIFACTORY_TOKEN%" />
    </UiPath-Internal>
  </packageSourceCredentials>
</configuration>

Injectez le mot de passe via une clé secrète CI, et non directement dans le fichier. NuGet développe les variables d'environnement de la forme %VAR% lorsqu'il lit le fichier.

Restriction des sources qui résolvent les packages

Utilisez <packageSourceMapping> lorsque vous souhaitez que les packages d’activités UiPath proviennent de votre miroir interne, mais autorisez d’autres dépendances à passer par un flux différent:

<configuration>
  <packageSources>
    <add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>

  <packageSourceMapping>
    <packageSource key="UiPath-Internal">
      <package pattern="UiPath.*" />
    </packageSource>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
  </packageSourceMapping>
</configuration>
<configuration>
  <packageSources>
    <add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>

  <packageSourceMapping>
    <packageSource key="UiPath-Internal">
      <package pattern="UiPath.*" />
    </packageSource>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
  </packageSourceMapping>
</configuration>
Remarque :

Sur les versions CLI antérieures à la version 25.10.18, seules les URL <packageSources> ont été transmises au packageur - <clear />, <packageSourceCredentials>, <packageSourceMapping> et <fallbackPackageFolders> ont été silencieusement ignorées. Pour épingler la résolution des dépendances à votre nuget.config sur les anciennes versions de CLI, combinez --nugetConfigFilePath avec --excludeConfiguredSources et fournissez plutôt des informations d'identification via la configuration NuGet de l'hôte.

Alternative: placez nuget.config dans le dossier de cache CLI

Si vous préférez ne pas transmettre le paramètre à chaque invocation, vous pouvez déposer la nuget.config dans le dossier où uipcli est mise en cache. La CLI le récupère automatiquement.

Utilisation d'un nuget.config personnalisé dans Azure DevOps

Copiez nuget.config dans $(Agent.ToolsDirectory)/uipcli après l’étape InstallPlatform :

trigger:
- main

pool:
  vmImage: ubuntu-latest

stages:
- stage: Demo
  jobs:
    - job: Demo
      steps:
        - task: UiPathInstallPlatform@6
          inputs:
            cliVersion: '25.10'

        - task: CopyFiles@2
          inputs:
            SourceFolder: '$(Build.SourcesDirectory)'
            Contents: 'nuget.config'
            TargetFolder: '$(Agent.ToolsDirectory)/uipcli'

        - task: UiPathPack@6
          inputs:
            versionType: 'AutoVersion'
            projectJsonPath: '$(Build.SourcesDirectory)/project.json'
            outputPath: '$(Build.ArtifactStagingDirectory)/Output'
            traceLevel: 'Information'
trigger:
- main

pool:
  vmImage: ubuntu-latest

stages:
- stage: Demo
  jobs:
    - job: Demo
      steps:
        - task: UiPathInstallPlatform@6
          inputs:
            cliVersion: '25.10'

        - task: CopyFiles@2
          inputs:
            SourceFolder: '$(Build.SourcesDirectory)'
            Contents: 'nuget.config'
            TargetFolder: '$(Agent.ToolsDirectory)/uipcli'

        - task: UiPathPack@6
          inputs:
            versionType: 'AutoVersion'
            projectJsonPath: '$(Build.SourcesDirectory)/project.json'
            outputPath: '$(Build.ArtifactStagingDirectory)/Output'
            traceLevel: 'Information'

Utilisation d'un nuget.config personnalisé dans Jenkins

Copiez nuget.config dans ${WORKSPACE}/CLI après l’étape InstallPlatform :

pipeline {
    agent {
        label 'jenkins-agent'
    }

    stages {
        stage('Clone') {
            steps {
                git (
                    branch: 'main',
                    url: 'https://github.com/your-org/your-repo.git'
                )
            }
        }

        stage('Install Platform') {
            steps {
                UiPathInstallPlatform (
                    cliVersion: '25.10',
                    traceLevel: 'Information'
                )
            }
        }

        stage('Copy nuget.config') {
            steps {
                bat 'copy nuget.config CLI\\nuget.config'
            }
        }

        stage('Pack') {
            steps {
                UiPathPack (
                    outputPath: '${WORKSPACE}/Output',
                    projectJsonPath: '${WORKSPACE}/project.json',
                    traceLevel: 'Information',
                    version: AutoVersion()
                )
            }
        }
    }
}
pipeline {
    agent {
        label 'jenkins-agent'
    }

    stages {
        stage('Clone') {
            steps {
                git (
                    branch: 'main',
                    url: 'https://github.com/your-org/your-repo.git'
                )
            }
        }

        stage('Install Platform') {
            steps {
                UiPathInstallPlatform (
                    cliVersion: '25.10',
                    traceLevel: 'Information'
                )
            }
        }

        stage('Copy nuget.config') {
            steps {
                bat 'copy nuget.config CLI\\nuget.config'
            }
        }

        stage('Pack') {
            steps {
                UiPathPack (
                    outputPath: '${WORKSPACE}/Output',
                    projectJsonPath: '${WORKSPACE}/project.json',
                    traceLevel: 'Information',
                    version: AutoVersion()
                )
            }
        }
    }
}

Désactiver les flux intégrés avec --disableBuiltInNugetFeeds

--disableBuiltInNugetFeeds supprime les flux intégrés d'UiPath de la résolution. La configuration de NuGet au niveau de l'hôte et tous les flux de --nugetConfigFilePath sont toujours consultés.

Utilisez cette option lorsque dans les cas suivants :

  • Votre réseau bloque pkgs.dev.azure.com, gallery.uipath.com ou api.nuget.org, et vous mettez en miroir les packages en interne à la place.
  • Vous souhaitez un ensemble déterministe de versions de packages d'activités provenant de votre propre flux, et non de gallery.uipath.com.
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config" \
  --disableBuiltInNugetFeeds
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config" \
  --disableBuiltInNugetFeeds

Restriction des flux personnalisés uniquement avec --excludeConfiguredSources

--excludeConfiguredSources exclut à la fois les flux intégrés et les sources NuGet configurées au niveau de l'utilisateur et de la machine sur l'hôte exécutant la CLI (généralement %AppData%\NuGet\NuGet.Config et %ProgramFiles(x86)%\NuGet\Config). La CLI résout les packages uniquement à partir des flux définis dans --nugetConfigFilePath.

Utilisez cette option lorsque dans les cas suivants :

  • Vous voulez des constructions hermétique et reproductible dans lesquelles seuls les flux que vous déclarez dans le contrôle de version sont consultés.
  • Un agent de développement partagé contient des flux au niveau de la machine que vous ne souhaitez pas affecter dans des pipelines spécifiques.
  • Vous déboguez les problèmes « fonctionne sur l’agent A, échoue sur l’agent B» causés par une configuration NuGet différente au niveau de l’hôte.
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config" \
  --excludeConfiguredSources
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
  --nugetConfigFilePath "C:\ci\nuget.config" \
  --excludeConfiguredSources
Remarque :

Assurez-vous que le nuget.config que vous transmettez avec --nugetConfigFilePath déclare chaque flux dont votre projet a besoin, y compris tous les équivalents de flux UiPath, car aucune autre source n’est consultée.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour