marketplace
latest
false
Importante :
Este contenido se ha traducido mediante traducción automática.
UiPath logo, featuring letters U and I in white
Guía de usuario de Marketplace
Last updated 5 de sep. de 2024

Crear paquetes de actividades

Dado que la plataforma de UiPath se basa en el marco .NET, todas las actividades toman la forma de un paquete Nuget (este es el paquete .nupkg que se obtiene al descargar una actividad directamente desde Go! a Marketplace o desde las fuentes en el gestor de paquetes de UiPath Studio). Hay 4 tipos de archivos necesarios para agrupar tus archivos en un único paquete Nuget:

Archivos de información de ensamblado



Cada vez que creas un proyecto dentro de Visual Studio, el motor de compilación de Microsoft (también conocido como MSBuild) transforma el código de ese proyecto en un archivo DLL, una biblioteca que puede ser utilizada por otras aplicaciones de Windows. Los metadatos de esta biblioteca provienen de tres archivos AssemblyInfo almacenados en la sección Propiedades de tu proyecto y que proporcionan información para diferentes niveles de un conjunto de actividades. Echemos un vistazo a cada uno:

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 contiene los metadatos únicos de este proyecto en particular (por ejemplo, MiEmpresa.MiProducto).

  • TítuloDeEnsamblado le da un nombre descriptivo a su DLL. Para simplificar, debe coincidir con el nombre del proyecto.
  • AssemblyDescription es un breve resumen de la naturaleza y el propósito del ensamblado.

    Hay otros atributos, como la cultura o el número de versión, que pueden incluirse. Para obtener una lista completa, consulta la documentación oficial de Microsoft.

  • ComVisible y Guid son atributos predeterminados utilizados por las aplicaciones que hacen referencia a la eventual biblioteca de este proyecto. Permanecen intactas para la mayoría de las actividades, pero puedes obtener más información sobre sus efectos aquí.

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

El siguiente archivo de ensamblado, <your activity name>AssemblyInfo.cs, contiene los metadatos que son únicos para el conjunto de actividades en su conjunto pero que se comparten entre todos los proyectos; en este caso, solo la versión de la actividad. Observe que la versión difiere para cada configuración de Visual Studio:

  • Depurar: si Visual Studio está en modo de depuración, la actividad se crea con un número de versión 1.0. *, lo que significa que las versiones principales y secundarias están configuradas (1.0) y la versión del parche aumenta en cada compilación. Esto es útil cuando se realizan cambios frecuentes en el mismo código, ya que cada paquete posterior se creará con una nueva versión, lo que la hace fácilmente distinguible.
  • Versión: si Visual Studio está en modo de versión, se establece el número de versión (p. Ej. 1.0.0). Esto proporciona un control completo a la hora de lanzar oficialmente un paquete.



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")]

GlobalAs AssemblyInfo.cs contiene los metadatos compartidos entre todos los conjuntos de actividades que generas. Los paquetes UiPath.GSuite.Activities y UiPath.MicrosoftOffice365.Activities , por ejemplo, fueron creados por la misma empresa (UiPath), se dirigen al mismo producto (UiPath Studio) y tienen los mismos derechos de autor, marca comercial e idioma, por lo que utilizaron el mismo archivo GlobalAs AssemblyInfo.cs para evitar duplicaciones innecesarias.

Nuspec



Una vez que todos sus proyectos se compilan en archivos DLL, estas bibliotecas se empaquetan en un paquete Nuget que se puede usar en UiPath Studio. Los metadatos de este paquete provienen del archivo nuspec dentro de su proyecto de diseño.

Puede ver la lista completa de elementos de metadatos disponibles a través de nuspec aquí, pero primero eche un vistazo al ejemplo básico a continuación. Estos elementos corresponden a los campos que se muestran en el administrador de paquetes de UiPath Studio y permiten a los usuarios encontrar y distinguir tu conjunto de actividades.

Ten en cuenta que algunos de los elementos, como id y version, contienen etiquetas en el formulario $element$. Estos toman sus valores de las etiquetas correspondientes en los archivos AssemblyInfo para evitar duplicar información.
<?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>


Nota: si está familiarizado con Visual Studio, sabrá que en realidad es capaz de crear paquetes Nuget por sí solo utilizando solo los archivos AssemblyInfo y MSBuild. Entonces, ¿por qué utilizar un archivo nuspec adicional? Ciertas propiedades de metadatos, como el propietario del paquete y los archivos de localización , solo están disponibles en una nuspec, por lo que nos gusta conservarla.

Metadatos del diseñador



Una vez creadas tus actividades y creados tus diseñadores (elementos de IU), deben vincularse y registrarse en el almacén de metadatos para que se muestren en el panel Actividades de UiPath Studio. El siguiente código crea dos actividades (Ámbito principal y Actividad secundaria) al registrar la siguiente información en nombre de cada una:

  • Categoría: la sección del panel de actividades en la que aparecerán estas actividades. De forma predeterminada, está establecido en MiEmpresa> MiProducto y se puede cambiar modificando el atributo Categoría en Resources.resx. Observa cómo la línea 12 vincula una clase de tu proyecto de actividad a la categoría especificada en la línea 10.
  • Diseñador: la interfaz de usuario para esa actividad. Vea cómo la línea 13 vincula una clase de su proyecto de actividad a una clase de su proyecto de diseño.
  • Documentación: documentos en línea de la actividad. Seleccione cualquier actividad en uno de sus flujos de trabajo de UiPath, presione F1 y la documentación de ayuda para esa actividad se abrirá en el navegador predeterminado. La URL de esta documentación se especifica aquí, como en la línea 14 (se utiliza go.uipath.com como marcador de posición).

    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());
            }
        }
    }


Crear el conjunto de actividades

Una vez completos los archivos mencionados, es fácil crear el conjunto de actividades. En el Explorador de soluciones, haz clic con el botón derecho del ratón en tu solución y selecciona Volver a crear solución.



El panel de salida indicará que los tres proyectos se crearon correctamente y proporcionará la ruta de acceso a su archivo nupkg incluido.



Nota: Para crear tu paquete de actividades, también podrías haber hecho clic con el botón derecho y "Reconstruir" la carpeta MiEmpresa.MiProducto o el proyecto MiEmpresa.MiProducto.Actividades.Design . ¿Por qué sucede esto? Consulta la siguiente sección sobre scripts posteriores a la compilación.

Scripts posteriores a la compilación

Navega hasta Propiedades> Eventos de compilación de tu proyecto de diseño y encontrarás un script posterior a la compilación, que se ejecuta inmediatamente después de que se hayan creado todos tus proyectos.



La primera línea de este script elimina cualquier versión antigua y obsoleta del paquete que exista en el directorio de salida para evitar el desorden.

La segunda línea usa la herramienta de línea de comandos NuGet (nuget.exe) para combinar los archivos DLL de tus 3 proyectos en un paquete nuget que puede leer UiPath Studio.

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)

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.