UiPath Marketplace
Neuestes
False
Bannerhintergrundbild
UiPath Marketplace-Benutzerhandbuch
Letzte Aktualisierung 16. Apr. 2024

Erstellen von Aktivitätspaketen

Da die Plattform von UiPath auf dem .NET-Framework basiert, haben alle Aktivitäten die Form eines Nuget-Pakets (dies ist die .nupkg- die Sie erhalten, wenn Sie eine Aktivität direkt von Go! herunterladen zu UiPath Marketplace oder aus den Feeds im Paketmanager von UiPath Studio). Es sind 4 Dateitypen erforderlich, um Ihre Dateien in einem einzigen NuGet-Paket zu bündeln:

AssemblyInfo-Dateien



Wenn Sie ein Projekt in Visual Studio erstellen, wandelt die Microsoft Build Engine (auch bekannt als MSBuild) den Code dieses Projekts in eine DLL um, eine Bibliothek, die von anderen Windows-Anwendungen verwendet werden kann. Die Metadaten für diese Bibliothek stammen aus drei AssemblyInfo -Dateien, die im Abschnitt Eigenschaften Ihres Projekts gespeichert sind und Informationen für verschiedene Ebenen eines Aktivitätssatzes enthalten. Sehen wir uns die einzelnen Elemente einmal genauer an:

1. AssemblyInfo.cs

[assembly: AssemblyTitle("MyCompany.MyProduct.Activities")]
[assembly: AssemblyDescription("This activity was made using the UiPath Activity Set extension.")]
[assembly: ComVisible(false)]
[assembly: Guid("133E5191-68DA-4F05-9A81-D5CFA16525C8")][assembly: AssemblyTitle("MyCompany.MyProduct.Activities")]
[assembly: AssemblyDescription("This activity was made using the UiPath Activity Set extension.")]
[assembly: ComVisible(false)]
[assembly: Guid("133E5191-68DA-4F05-9A81-D5CFA16525C8")]

AssemblyInfo.cs enthält die Metadaten, die nur für dieses Projekt vorhanden sind (z. B. MeinUnternehmen.MeinProdukt).

  • AssemblyTitle gibt Ihrer DLL einen gebräuchlichen Namen. Der Einfachheit halber sollte dieser mit dem Namen des Projekts übereinstimmen.
  • AssemblyDescription ist eine kurze Zusammenfassung über die Art und den Zweck der Assembly.

    Es gibt mehrere andere Attribute, z. B. Kultur oder Versionsnummer, die enthalten sein können. Eine vollständige Liste finden Sie in der offiziellen Dokumentation von Microsoft.

  • ComVisible und Guid sind Standardattribute, die von Anwendungen verwendet werden, die auf die Eventualbibliothek dieses Projekts verweisen. Sie bleiben für die meisten Aktivitäten unverändert. Mehr über die Auswirkungen erfahren Sie hier.

2. MyCompany.MyProductAssemblyInfo.cs

#if DEBUG
[assembly: AssemblyVersion("1.0.*")]
#else
[assembly: AssemblyVersion("1.0.0")]
#endif#if DEBUG
[assembly: AssemblyVersion("1.0.*")]
#else
[assembly: AssemblyVersion("1.0.0")]
#endif

Die nächste Assembly-Datei, <your activity name>AssemblyInfo.cs, enthält die Metadaten, die für den Aktivitätssatz als Ganzes eindeutig sind, aber von allen Projekten gemeinsam genutzt werden; In diesem Fall nur die Aktivitätsversion. Beachten Sie, dass sich die Version für jede Visual Studio-Konfiguration unterscheidet:

  • Debuggen: Wenn sich Visual Studio im Debugmodus befindet, wird die Aktivität mit der Versionsnummer 1.0.*, Dies bedeutet, dass die Haupt- und Nebenversionen festgelegt sind (1.0) und die Patch-Version bei jedem Build erhöht wird. Dies ist nützlich, wenn häufig Änderungen an demselben Code vorgenommen werden, da jedes nachfolgende Paket mit einer neuen Version erstellt wird, damit es leicht erkennbar ist.
  • Release: Wenn sich Visual Studio im Release-Modus befindet, wird die Versionsnummer festgelegt (z. B. 1.0.0). Dies bietet die vollständige Kontrolle darüber, wann es an der Zeit ist, ein Paket offiziell zu veröffentlichen.



3. GlobalAssemblyInfo.cs

[assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyProduct("Product A")]
[assembly: AssemblyCopyright("MyCompany © 2019")]
[assembly: AssemblyTrademark("MyCompany™")]
[assembly: AssemblyCulture("en-CA")]
[assembly: NeutralResourcesLanguage("en-US")][assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyProduct("Product A")]
[assembly: AssemblyCopyright("MyCompany © 2019")]
[assembly: AssemblyTrademark("MyCompany™")]
[assembly: AssemblyCulture("en-CA")]
[assembly: NeutralResourcesLanguage("en-US")]

GlobalAssemblyInfo.cs enthält die Metadaten, die von allen von Ihnen erstellten Aktivitätssätzen gemeinsam genutzt werden. Die Pakete UiPath.GSuite.Activities und UiPath.MicrosoftOffice365.Activities wurden beispielsweise von demselben Unternehmen (UiPath) erstellt, zielen auf dasselbe Produkt ab (UiPath Studio) und haben dieselben Informationen zu Urheberrecht, Warenzeichen und Sprache, also wurden sie verwendet dieselbe GlobalAssemblyInfo.cs-Datei, um unnötige Duplikate zu vermeiden.

Nuspec



Sobald alle Ihre Projekte in DLLs kompiliert wurden, werden diese Bibliotheken in einem NuGet-Paket gebündelt, das in UiPath Studio verwendet werden kann. Die Metadaten für dieses Paket stammen aus der nuspec -Datei in Ihrem Designprojekt.

Die vollständige Liste der Metadatenelemente, die über die Nuspec verfügbar sind, finden Sie hier, aber werfen Sie zuerst einen Blick auf das folgende grundlegende Beispiel. Diese Elemente entsprechen den Feldern, die im Paketmanager von UiPath Studio angezeigt werden, und ermöglichen es Benutzern, Ihren Aktivitätssatz zu finden und zu unterscheiden.

Beachten Sie, dass einige der Elemente, z. B. id und Version, Tags im Formular $element$ enthalten. Diese entnehmen ihre Werte aus den entsprechenden Tags in den AssemblyInfo-Dateien, um zu verhindern, dass Informationen dupliziert werden.
<?xml version="1.0"?>
<package>
  <metadata>
    <id>$title$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <description>$description$</description>
    <copyright>$copyright$</copyright>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <licenseUrl>https://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
    <projectUrl>https://integrations.uipath.com/docs/integrating-with-uipath</projectUrl>
    <iconUrl>https://raw.githubusercontent.com/NuGet/Samples/master/PackageIconNuspecExample/icon.png</iconUrl>
    <tags>UiPath Activit</tags>
    <dependencies>
    </dependencies>
  </metadata>
  <files>
    <file src="$OutputPath$**\)\)MyCompany.MyProduct*resources.dll" target="lib\)
et461"/>
  </files>
</package><?xml version="1.0"?>
<package>
  <metadata>
    <id>$title$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <description>$description$</description>
    <copyright>$copyright$</copyright>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <licenseUrl>https://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
    <projectUrl>https://integrations.uipath.com/docs/integrating-with-uipath</projectUrl>
    <iconUrl>https://raw.githubusercontent.com/NuGet/Samples/master/PackageIconNuspecExample/icon.png</iconUrl>
    <tags>UiPath Activit</tags>
    <dependencies>
    </dependencies>
  </metadata>
  <files>
    <file src="$OutputPath$**\)\)MyCompany.MyProduct*resources.dll" target="lib\)
et461"/>
  </files>
</package>


Hinweis: Wenn Sie mit Visual Studio vertraut sind, wissen Sie vielleicht, dass es NuGet-Pakete selbst erstellen kann, indem Sie nur die AssemblyInfo-Dateien und MSBuild verwenden. Warum also eine zusätzliche nuspec-Datei? Bestimmte Metadateneigenschaften, z. B. der Paketbesitzer und die Lokalisierungsdateien , sind nur in einer NuSpec verfügbar, weshalb wir sie beibehalten möchten.

Designer-Metadaten



Nachdem Ihre Aktivitäten erstellt und Ihre Designer (UI-Elemente) erstellt wurden, müssen sie miteinander verknüpft und im Metadatenspeicher registriert werden, um im Aktivitätenbereich von UiPath Studio angezeigt zu werden. Der folgende Code erstellt zwei Aktivitäten (übergeordneter Bereich (Parent Scope) und untergeordnete Aktivität (Child Activity)), indem die folgenden Informationen im Namen jeder registriert werden:

  • Kategorie: Der Abschnitt des Aktivitätenbereichs, in dem diese Aktivitäten angezeigt werden. Standardmäßig ist diese auf MyCompany > MyProduct festgelegt und kann durch Ändern des Category-Attributs in Resources.resx geändert werden. Sehen Sie sich an, wie Zeile 12 eine Klasse aus Ihrem Aktivitätsprojekt mit der in Zeile 10 angegebenen Kategorie verknüpft.
  • Designer: Die Benutzeroberfläche für diese Aktivität. Sehen Sie sich an, wie Zeile 13 eine Klasse aus Ihrem Aktivitätsprojekt mit einer Klasse aus Ihrem Designprojekt verknüpft.
  • Dokumentation: Onlinedokumente für die Aktivität. Wählen Sie eine beliebige Aktivität in einem Ihrer UiPath-Workflows aus und drücken Sie F1, und die Hilfedokumentation für diese Aktivität wird im Standardbrowser geöffnet. Die URL für diese Dokumentation wird hier wie in Zeile 14 angegeben (go.uipath.com wird als Platzhalter verwendet).

    namespace MyCompany.MyProduct.Activities.Design
    {
        public class DesignerMetadata : IRegisterMetadata
        {
            public void Register()
            {
                var builder = new AttributeTableBuilder();
                builder.ValidateTable();
                var categoryAttribute =  new CategoryAttribute($"{Resources.Category}");
                builder.AddCustomAttributes(typeof(ParentScope), categoryAttribute);
                builder.AddCustomAttributes(typeof(ParentScope), new DesignerAttribute(typeof(ParentScopeDesigner)));
                builder.AddCustomAttributes(typeof(ParentScope), new HelpKeywordAttribute("https://go.uipath.com"));
                builder.AddCustomAttributes(typeof(ChildActivity), categoryAttribute);
                builder.AddCustomAttributes(typeof(ChildActivity), new DesignerAttribute(typeof(ChildActivityDesigner)));
                builder.AddCustomAttributes(typeof(ChildActivity), new HelpKeywordAttribute("https://go.uipath.com"));
                MetadataStore.AddAttributeTable(builder.CreateTable());
            }
        }
    }namespace MyCompany.MyProduct.Activities.Design
    {
        public class DesignerMetadata : IRegisterMetadata
        {
            public void Register()
            {
                var builder = new AttributeTableBuilder();
                builder.ValidateTable();
                var categoryAttribute =  new CategoryAttribute($"{Resources.Category}");
                builder.AddCustomAttributes(typeof(ParentScope), categoryAttribute);
                builder.AddCustomAttributes(typeof(ParentScope), new DesignerAttribute(typeof(ParentScopeDesigner)));
                builder.AddCustomAttributes(typeof(ParentScope), new HelpKeywordAttribute("https://go.uipath.com"));
                builder.AddCustomAttributes(typeof(ChildActivity), categoryAttribute);
                builder.AddCustomAttributes(typeof(ChildActivity), new DesignerAttribute(typeof(ChildActivityDesigner)));
                builder.AddCustomAttributes(typeof(ChildActivity), new HelpKeywordAttribute("https://go.uipath.com"));
                MetadataStore.AddAttributeTable(builder.CreateTable());
            }
        }
    }


Erstellen des Aktivitätssatzes

Sobald die oben genannten Dateien vollständig sind, ist das Erstellen des Aktivitätssatzes einfach. Klicken Sie im Projektmappen-Explorer einfach mit der rechten Maustaste auf Ihre Lösung, und wählen Sie Projektmappe neu erstellen aus.



Der Ausgabebereich zeigt dann an, dass alle drei Projekte erfolgreich erstellt wurden, und gibt den Pfad zu Ihrer gebündelten nupkg-Datei an.



Hinweis: Zum Erstellen Ihres Aktivitätspakets hätten Sie auch mit der rechten Maustaste geklickt und den Ordner „ MyCompany.MyProduct “ oder das Projekt „ MyCompany.MyProduct.Activities.Design “ neu erstellt. Warum? Siehe nächster Abschnitt über Skripte nach der Erstellung.

Skripte nach der Erstellung

Navigieren Sie zu Eigenschaften > Buildereignisse Ihres Designprojekts, und Sie finden ein Post-Build-Skript, das sofort ausgeführt wird, nachdem alle Ihre Projekte erstellt wurden.



Die erste Zeile dieses Skripts löscht alle älteren, veralteten Versionen des Pakets, die im Ausgabeverzeichnis vorhanden sind, um Ordnung zu schaffen.

In der zweiten Zeile wird das NuGet-Befehlszeilentool (nuget.exe) verwendet, um die DLLs Ihrer drei Projekte in einem NuGet-Paket zu kombinieren, das von UiPath Studio gelesen werden kann.

if exist $(TargetDir)Packages\)\)MyCompany.MyProduct*.* del $(TargetDir)Packages\)\)MyCompany.MyProduct*.*
if $(ConfigurationName) == Debug "$(SolutionDir).nuget\)\)NuGet.exe" pack "$(ProjectPath)" -OutputDirectory "Packages" -IncludeReferencedProjects -Prop Configuration=$(ConfigurationName)if exist $(TargetDir)Packages\)\)MyCompany.MyProduct*.* del $(TargetDir)Packages\)\)MyCompany.MyProduct*.*
if $(ConfigurationName) == Debug "$(SolutionDir).nuget\)\)NuGet.exe" pack "$(ProjectPath)" -OutputDirectory "Packages" -IncludeReferencedProjects -Prop Configuration=$(ConfigurationName)

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.