InvokeCodeを使用したライブラリを作ると、ライブラリ呼び出し時に「型~は定義されていません」と表示されて使えない

いつもお世話になっております。
UiPathStudioでInvokeCodeで実行している処理があり、汎用的な処理のためライブラリ化しようとしたところ、「型~は定義されていません」というエラーになってしまいます。
具体的には以下のようなエラーが多く表示されます。
ライン 5 においてエラー BC30002: 型 ‘Color’ は定義されていません。
ライン 18 においてエラー BC30002: 型 ‘Form’ は定義されていません。

ただ、これらを含むライブラリであるSystem.DrawingやSystem.Windows.Formsはライブラリ化するxamlの中でもライブラリを呼び出すxamlの中でもインポートしています。

また、うまくいくパターンもあり、同じxamlの中でも以下のように挙動が変わっています。
① InvokeCodeを直接実行(もともとの処理) → 正常に動作する
② ライブラリ化したInvokeCodeを実行 → 上記の「型~は定義されていません」のエラー
③ InvokeCodeを直接実行したあとの処理でライブラリ化したInvokeCodeを実行 →両方正常に動作する

InvokeCodeを使用してライブラリを作成する際には何か気を付けなくてはいけない点があるのでしょうか?
詳しい方がいましたらご教示いただきたく、よろしくお願いします。

こんにちは

原因の切り分けのために
ColorやFormを直接呼ぶのではなく、名前空間付きでSystem.Drawing.Colorのように
した場合どのようになりますでしょうか?
もしこれで解消するようでしたら名前空間のインポートの問題かと思います

こんにちは
コメントありがとうございます。
頂いた通りに記載したところ、該当するエラーが表示されなくなりました。
ただ、System.DrawingやSystem.Windows.Formsはインポートしているのにこの問題が起きてしまっているので原因に検討がつかず、、、
何か他に確認すべき点などありましたらご教示くださいm(__)m

こんにちは

おそらくUiPath側の問題ではないかと思います。(名前空間のハンドリングがうまくできていない)

また別の問題として、特にライブラリでは、呼び出し側の状況によっては複数の名前空間で同一のクラス名がかぶるケース等もあるかもしれません。(本来は独立してハンドリングしてほしいところですが...。)

そのような理由から、冗長ではありますが、フルの名前空間付きでクラス等を記述したほうが安全かもしれません。

1 Like

ありがとうございます。
とりあえずUiPathの方に問合せしてみつつ、ダメそうか返事が遅ければ名前空間付きで記述してみあmす!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.