- Überblick
- UiPath-CLI
- Über UiPath-CLI
- Herunterladen der UiPath-CLI
- Kompatibilitätsmatrix
- Ausführen der UiPath-CLI
- Verwalten von NuGet-Feeds
- Vertrauenswürdige benutzerdefinierte Zertifikate
- Test Manager-Support
- Packen von Projekten in ein Paket
- Signieren von Projektpaketen
- Analysieren eines Projekts
- Bereitstellen eines Pakets im Orchestrator
- Ausführen eines Auftrags im Orchestrator
- Testen eines Pakets oder Ausführen eines Testsatzes
- Testen mehrerer Pakete
- Eingabeparameter JSON-Format
- Bereitstellen von Assets im Orchestrator
- Löschen von Assets aus dem Orchestrator
- Ausführen von Aufgaben mithilfe der JSON-Konfiguration
- Wiederherstellen von Automatisierungsabhängigkeiten
- Überblick
- Wiederherstellen und Analysieren von Lösungen
- Eine Lösung wird gepackt
- Signieren von Lösungspaketen
- Hochladen und Löschen von Lösungspaketen
- Herunterladen von Lösungspaketen und Konfigurationen
- Bereitstellen und Aktivieren von Lösungen
- Deinstallieren von Bereitstellungen
- Authentifizierung und Scopes
- Fehlerbehebung bei der UiPath-CLI
- Azure DevOps-Erweiterung
- Jenkins-Plugin
Benutzerhandbuch zu CI/CD-Integrationen
Auf dieser Seite werden die drei CLI-Parameter beschrieben, die steuern, welche NuGet-Feeds uipcli beim Auflösen von Paketabhängigkeiten konsultiert werden sollen, und es wird gezeigt, wie die einzelnen Elemente verwendet werden.
Die gleichen Parameter gelten sowohl für eigenständige RPA-Projekte als auch für Lösungen.
Wie uicli Feeds auflöst
Standardmäßig löst uipcli Pakete aus drei Quellen auf, die in dieser Reihenfolge zusammengeführt werden:
- Integrierte Feeds, die mit der CLI ausgeliefert werden:
https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.jsonhttps://gallery.uipath.com/api/v2https://api.nuget.org/v3/index.jsonC:\Program Files\Microsoft SDKs\NuGetPackages(wenn sich dieser Pfad auf dem aktuellen Agenten befindet)C:\Program Files (x86)\Microsoft SDKs\NuGetPackages(wenn sich dieser Pfad auf dem aktuellen Agenten befindet)
- NuGet-Konfiguration auf Hostebene auf der Maschine, auf der die CLI ausgeführt wird, in der Regel
%AppData%\NuGet\NuGet.Config(Benutzerebene) und%ProgramFiles(x86)%\NuGet\Config(Maschinenebene). - Ein benutzerdefinierter
nuget.config, den Sie über--nugetConfigFilePathübergeben.
Mit drei Parametern können Sie diese Standardauflösung anpassen:
| Parameter | Was es steuert |
|---|---|
--nugetConfigFilePath | Fügt die Feeds aus einer nuget.config -Datei hinzu, die Sie bereitstellen. |
--disableBuiltInNugetFeeds | Entfernt Ebene 1 (die integrierten Feeds). |
--excludeConfiguredSources | Löscht die Ebenen 1 und 2. Nur die --nugetConfigFilePath -Feeds bleiben erhalten. |
Wenn Sie uipcli mit einer Konfigurationsdatei ausführen, hat jeder Parameter ein JSON-Äquivalent: "nugetConfigFilePath": "...", "disableBuiltInNugetFeeds": true, "excludeConfiguredSources": true.
Hinzufügen benutzerdefinierter Feeds mit --nugetConfigFilePath
--nugetConfigFilePath verweist die CLI auf eine nuget.config -Datei, deren <packageSources> in die Abhängigkeitsauflösung aufgenommen werden soll. Dies ist die primäre Methode, um einen privaten Feed (UnternehmensproGet, Artifact, Azure Artifacts, internes Enterprise-Feed usw.) hinzuzufügen, ohne etwas am Build-Agent zu ändern.
Die Datei folgt dem Standardschema von NuGet:
<?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>
Übergeben Sie den Pfad in der Befehlszeile:
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"
Ab 25.10.18 wird die Datei durchgängig berücksichtigt – die CLI leitet sie an den WorkflowCompiler weiter, der sie direkt über die NuGet-Bibliotheken lädt. Die folgenden Anweisungen werden alle wirksam:
| Richtlinie | Auswirkung |
|---|---|
<clear /> hinein <packageSources> | Führt die geerbte Liste der Quellen (integrierte Feeds und Konfiguration auf Hostebene) aus, bevor der Rest der Datei angewendet wird. |
<packageSourceCredentials> | Anmeldeinformationen pro Quelle. Die Standardauthentifizierung für private Feeds (JFlex, Sonatype Enterprise, interne Azure-Artefakte usw.) wird von der nativen HTTP-Pipeline von NuGet übernommen, einschließlich 401-Herausforderungen. |
<packageSourceMapping> | Beschränkt ein, welche Paket-IDs (oder ID-Präfixe) aus welchen Quellen aufgelöst werden können. |
<fallbackPackageFolders> | Fügt lokale Ordner hinzu, die NuGet abfragt, bevor es mit dem Netzwerk verbunden ist. Nützlich für Air-Gap-Builds. |
Authentifizierter privater Feed (JFlyn, Cluster, interne Azure-Artefakte)
Deklarieren Sie die Quelle und ihre Anmeldeinformationen in derselben Datei. Die CLI benötigt keine zusätzlichen Parameter – der NuGet-Client nimmt die Anmeldeinformationen automatisch auf, wenn er auf die übereinstimmende Quelle trifft:
<?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>
Fügen Sie das Kennwort über ein CI-Geheimnis ein, nicht direkt in die Datei. NuGet erweitert Umgebungsvariablen des Formats %VAR% beim Lesen der Datei.
Einschränken, welche Quellen welche Pakete auflösen
Verwenden Sie <packageSourceMapping> wenn Sie möchten, dass UiPath-Aktivitätspakete aus Ihrem internen Spiegelungen stammen, aber andere Abhängigkeiten in einem anderen Feed durchlaufen:
<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>
Bei CLI-Versionen vor 25.10.18 nur die <packageSources> URLs wurden an den Packager weitergeleitet – <clear />, <packageSourceCredentials>, <packageSourceMapping>, und <fallbackPackageFolders> wurden im Hintergrund ignoriert. Um die Abhängigkeitsauflösung an Ihre nuget.config bei älteren CLI-Builds anzuheften, kombinieren Sie --nugetConfigFilePath mit --excludeConfiguredSources und geben Sie stattdessen Anmeldeinformationen über die NuGet-Konfiguration des Hosts an.
Alternative: Platzieren Sie nuget.config im CLI-Cache-Ordner
Wenn Sie den Parameter nicht bei jedem Aufruf übergeben möchten, können Sie die nuget.config in dem Ordner ablegen, in dem uipcli zwischengespeichert wird. Die CLI übernimmt dies automatisch.
Verwenden eines benutzerdefinierten nuget.config in Azure DevOps
Kopieren Sie nuget.config nach dem Schritt InstallPlatform in $(Agent.ToolsDirectory)/uipcli :
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'
Verwenden eines benutzerdefinierten nuget.config in Jenkins
Kopieren Sie nuget.config nach dem Schritt InstallPlatform in ${WORKSPACE}/CLI :
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()
)
}
}
}
}
Deaktivieren integrierter Feeds mit --disableBuiltInNugetFeeds
--disableBuiltInNugetFeeds entfernt die integrierten Feeds von UiPath aus der Lösung. Die NuGet-Konfiguration auf Hostebene und alle Feeds aus --nugetConfigFilePath werden weiterhin berücksichtigt.
Gehen Sie so vor, wenn:
- Ihr Netzwerk blockiert
pkgs.dev.azure.com,gallery.uipath.comoderapi.nuget.orgund Sie spiegeln stattdessen die Pakete intern wider. - Sie möchten einen deterministischen Satz von Aktivitätspaketversionen, die aus Ihrem eigenen Feed und nicht aus
gallery.uipath.comstammen.
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
Einschränken auf benutzerdefinierte Feeds nur mit --excludeConfiguredSources
--excludeConfiguredSources schließt sowohl die integrierten Feeds als auch die NuGet-Quellen aus, die auf Benutzer- und Maschinenebene auf dem Host konfiguriert sind, auf dem die CLI ausgeführt wird (normalerweise %AppData%\NuGet\NuGet.Config und %ProgramFiles(x86)%\NuGet\Config). Die CLI löst Pakete nur aus den in --nugetConfigFilePath definierten Feeds auf.
Gehen Sie so vor, wenn:
- Sie möchten hermetische, reproduzierbare Builds, bei denen nur die Feeds abgefragt werden, die Sie in der Versionskontrolle deklarieren.
- Ein gemeinsam genutzter Build-Agent verfügt über Feeds auf Maschinenebene, die nicht in bestimmte Pipelines eingebunden werden sollen.
- Sie debuggen „funktioniert bei Agent A, schlägt bei Agent B fehl“-Probleme, die durch eine unterschiedliche NuGet-Konfiguration auf Hostebene verursacht werden.
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
Stellen Sie sicher, dass die nuget.config die Sie mit --nugetConfigFilePath übergeben, jeden Feed deklariert, den Ihr Projekt benötigt – einschließlich aller UiPath-Feed-Äquivalente –, da keine andere Quelle konsultiert wird.
- Wie uicli Feeds auflöst
- Hinzufügen benutzerdefinierter Feeds mit
--nugetConfigFilePath - Authentifizierter privater Feed (JFlyn, Cluster, interne Azure-Artefakte)
- Einschränken, welche Quellen welche Pakete auflösen
- Alternative: Platzieren Sie
nuget.configim CLI-Cache-Ordner - Verwenden eines benutzerdefinierten
nuget.configin Azure DevOps - Verwenden eines benutzerdefinierten
nuget.configin Jenkins - Deaktivieren integrierter Feeds mit
--disableBuiltInNugetFeeds - Einschränken auf benutzerdefinierte Feeds nur mit
--excludeConfiguredSources