UiPath Documentation
marketplace
latest
false
Importante :
Este conteúdo foi traduzido com auxílio de tradução automática. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Guia do usuário do Marketplace

Última atualização 5 de mai de 2026

Criação de pacotes de atividades

Como a plataforma da UiPath é criada na estrutura do .NET, todas as atividades assumem a forma de um pacote Nuget (este é o arquivo .nupkg que você obtém ao baixar uma atividade diretamente do Go! para o Marketplace ou dos feeds no gerenciador de pacotes do UiPath Studio ). Existem 4 tipos de arquivos necessários para agrupar seus arquivos em um único pacote Nuget:

Arquivos do AssemblyInfo

Sempre que você cria um projeto dentro do Visual Studio, o Microsoft Build Engine (também conhecido como MSBuild) transforma o código desse projeto em uma DLL, uma biblioteca que pode ser usada por outros aplicativos do Windows. Os metadados para essa biblioteca vêm de três arquivos AssemblyInfo armazenados na seção Propriedades de seu projeto e que fornecem informações para diferentes níveis de um conjunto de atividades. Vamos dar uma olhada em cada uma:

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 contém os metadados exclusivos desse projeto específico (por exemplo, MyCompany.MyProduct).

  • AssemblyTitle dá um nome amigável à sua DLL. Para simplificar, deve corresponder ao nome do projeto.
  • AssemblyDescription é um breve resumo da natureza e do propósito da assembly. Há vários outros atributos, como cultura ou número de versão, que podem ser incluídos. Para obter uma lista completa, consulte a documentação oficial da Microsoft.
  • ComVisível e Guid são atributos padrão usados por aplicativos que fazem referência à biblioteca final deste projeto. Eles permanecem intactos para a maioria das atividades, mas você pode ler mais sobre seus efeitos aqui.

2. MyCompany.MyProductAssemblyInfo.cs

#i DEBUG
[assembly: AssemblyVersion("1.0.*")]
#els
[assembly: AssemblyVersion("1.0.0")]
#endi
#i DEBUG
[assembly: AssemblyVersion("1.0.*")]
#els
[assembly: AssemblyVersion("1.0.0")]
#endi

O próximo arquivo de Assembly, AssemblyInfo.cs, contém os metadados que são exclusivos para o conjunto de atividades como um todo, mas são compartilhados entre todos os projetos; neste caso, apenas a versão da atividade. Observe que a versão é diferente para cada configuração do Visual Studio:

  • Debug: If Visual Studio is in debug mode, the activity is built with a version number 1.0.*, meaning the major and minor versions are set (1.0) and the patch version increments on each build. This is useful when making frequent changes to the same code as each subsequent package will be built with a new version, making it easily distinguishable.

  • Release: If Visual Studio is in release mode, the version number is set (e.g. 1.0.0). This provides complete control when it's time to officially release a package.

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 contém os metadados compartilhados entre todos os conjuntos de atividades que você produz. Os pacotes UiPath.GSuite.Activities e UiPath.MicrosoftOffice365.Activities , por exemplo, foram criados pela mesma empresa (UiPath), visam o mesmo produto (UiPath Studio) e têm as mesmas informações de direitos autorais, marca registrada e idioma, então eles usaram o mesmo arquivo GlobalAssemblyInfo.cs para evitar duplicação desnecessária.

Nuspec

Once all of your projects are compiled into DLLs, these libraries are bundled into a Nuget package that can be used in UiPath Studio. The metadata for this package comes from the nuspec file within your Design project.

Você pode ver a lista completa de elementos de metadados disponíveis por meio do nuspec aqui, mas dê uma olhada no exemplo básico abaixo primeiro. Esses elementos correspondem aos campos exibidos no gerenciador de pacotes do UiPath Studio e permitem que os usuários encontrem e diferenciem seu conjunto de atividades.

Note that some of the elements, such as id and version, contain tags in the form $element$. These are taking their values from the corresponding tags in the AssemblyInfo files to prevent duplicating information.

<?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 Activities</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 Activities</tags>
    <dependencies>
    </dependencies>
  </metadata>
  <files>
    <file src="$OutputPath$**\)\)MyCompany.MyProduct*resources.dll" target="lib\)
et461"/>
  </files>
</package>

Observação:

If you're familiar with Visual Studio, you may know it is actually capable of building Nuget packages on its own using only the AssemblyInfo files and MSBuild. So why use an extra nuspec file? Certain metadata properties, such as the package Owner and Localization files, are only available in a nuspec, which is why we like to keep it around.

Metadados do Designer

Após suas atividades serem criadas e seus designers (elementos de interface do usuário) construídos, elas devem ser vinculadas e registradas no armazenamento de metadados para serem exibidas no painel Atividades do UiPath Studio. O código abaixo cria duas atividades (Parent Scope e Atividade filho) registrando as seguintes informações em nome de cada uma:

  • Categoria: a seção do painel de atividades na qual essas atividades serão exibidas. Por padrão, é definido como *MyCompany > MyProduct

  • e pode ser alterado modificando o atributo de Categoria em Recursos.resx. Veja como a linha 12 vincula uma classe do seu projeto de atividade à categoria especificada na linha 10.

  • Designer: The UI for that activity. See how line 13 links a class from your activity project to a class from your design project.

  • Documentação: documentos online para a atividade. Selecione qualquer atividade em um dos seus fluxos de trabalho da UiPath, pressione F1, e a documentação de ajuda para essa atividade será aberta no navegador padrão. O URL desta documentação está especificado aqui, como na linha 14 (*go.uipath.com

  • é usado como um espaço reservado).

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

Criar o conjunto de atividades

Quando os arquivos mencionados acima estão completos, é fácil criar o conjunto de atividades. No Explorador de Soluções, clique com o botão direito do mouse na sua solução e selecione Recompilar Solução.

O painel de saída indicará que todos os três projetos foram criados com sucesso e fornecerá o caminho para seu arquivo nupkg incluído.

Observação:

Para criar seu pacote de atividades, você também pode ter clicado com o botão direito do mouse e "Reconstruído" a pasta MyCompany.MyProduct ou o projeto MyCompany.MyProduct.Activities.Design . Por que isso acontece? Consulte a próxima seção sobre scripts pós-compilação.

Scripts pós-compilação

Navegue até Propriedades > Eventos de Compilação do seu projeto de Criação e você encontrará um script de pós-compilação, que será executado imediatamente após todos os projetos serem criados.

A primeira linha desse script exclui quaisquer versões mais antigas e obsoletas do pacote que existem no diretório de saída para evitar desordem.

A segunda linha usa a ferramenta de Linha de Comando NuGet (nuget.exe) para combinar os DLLs dos três projetos em um pacote NuGet que pode ser lido pelo 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)

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades