VB.netのコードによるカスタムアクティビティ作成について

custom_activities

#1

こんにちは、UiPathと.net勉強中のものです。
標記の件の実現方法について質問です。

UiPath Activities ガイド https://activities.uipath.com/docs/creating-a-custom-activity
の流れでC#コード丸コピ、
UiPathStudioのManagePackagesにて該当パッケージを認識し、
インストール後にActivitiesパネルに該当のアクティビティが表示されたのを確認しました。

VBのdllでも同様にカスタムアクティビティで作成できるかと思い、
VBのクラスライブラリを作成し上記の流れで試したところActivitiesが表示されませんでした。
現象としてはManagePackagesに認識はされてインストールはできるが、
Activitiesパネルに表示されない(検索しても出てこない)といった状況です。
コードに不足があるのだと思うのですが、不足となる箇所が分からずご指摘を頂けないでしょうか。

VBのコードは以下を記述しています。


Imports System.Activities
Imports System.ComponentModel
Namespace SampleAct
Public MustInherit Class SamplActivities
Inherits CodeActivity

    <Category("Input")>
    Public Property OutputStrings As InArgument(Of String)

    Protected Overrides Sub Execute(context As System.Activities.CodeActivityContext)
        Console.WriteLine(context.GetValue(Me.OutputStrings))
    End Sub
End Class

End Namespace


(参照設定にデフォルトのチェックからSystem.ActivitiesとSystem.ComponentModel.Compositionを追加)
(カスタムアクティビティを利用したいのではなく、
VBでカスタムアクティビティが作れるかが目的の為内容は簡素な物にしています。)

Version:
UiPathStudio v18.2.3
VisualStudio 2017 Version15.7.5 (.NET Framework Version4.7.02556)
NugetPackageExplorer 4.4.7


#2

こんにちは

Public MustInherit Class SamplActivities

MustInherit
要らないのでは?


#3

Yoichi様
ご指摘ありがとうございます。
MustInheritを削除してパッケージ化してみましたが、事象は変わらずでした。
一度プロジェクトを作り直して試してみます。(VBプロジェクト名が不一致だった可能性がありました。)

追記:VBプロジェクト名見直しを含めてプロジェクトを再作成しましたが、事象は変わらずでした。


#4

こんにちは

実際に上記のコードでbuildしてみました。
(MustInherit なしです。MustInherit修飾子は抽象クラスを作るためのものなので、このようなケースではつけてはダメですね。)

結果、問題なさそうな感じです。
Activity

参考でソースとnupkgもつけておきます。
SamplActivities_20180730.zip (206.8 KB)
MyPackage.Activities.1.0.2.nupkg (6.3 KB)

原因は .Net Frameworkのターゲットバージョンが違うとかそのあたりでしょうか?


#5

Yoichi様
こんにちは
わざわざサンプルのアップありがとうございます。
頂いたパッケージだと正しくAcitivitiesパネルに表示されたことを確認できました。

しかしアップ頂いたVBプロジェクトをビルドしてパッケージ化した所、
上記の問題となる事象がおきました。
(初期に試したC#でも再度1からやり直したところ同様の事象が起きてしまいました。:dizzy_face:

という事はコードではなくNugetかVBプロジェクトの設定で何か間違えているみたいです。
(Nuget側はIdにAcitivitiesをつける以外は特に設定はなさそうですが・・。)
ターゲットバージョンの見直しもしてみましたが、事象変わらずでした。

初めにC#で成功した方法と何が違うかもう一度洗い出して試してみます。
原因が判明しましたら追記いたします。

ご指摘、返信ありがとうございました。


#6

原因判明しました・・・。

成功/失敗したパッケージをzipにして中身を見た見たところ、それぞれ別のフォルダが格納されていました。
(libフォルダ/toolフォルダ)

Nugetのパッケージ化の際[Add Lib Folder]ではなく、[Add Tools Folder]を選択し作成していました。
初歩的な所の確認を怠り、お騒がせしてすいませんでした。

これでカスタムアクティビティが作れると分かり興奮してきました!!
上記の返信ありがとうございました。