1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UiPath カスタムアクティビティでプロジェクトディレクトリを取得する話

Last updated at Posted at 2020-07-08

UiPath カスタムアクティビティでプロジェクトディレクトリを取得する話

UiPathでEnvironment.CurrentDirectoryを設定すると、プロジェクトフォルダのパスが取れると思いきや
カスタムアクティビティの場合は、プロジェクトフォルダではなく、カスタムアクティビティが格納されている
nugetのフォルダが取れてしまい、予期せぬエラーに悩まされたので、忘れないうちに投稿します。

お約束事項(免責事項)

この記事は2020年6月時点の情報を基に作成しております。
記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。

Environment.CurrentDirectory

プロセスのプロジェクトの場合

繰り返しになりますが、UiPathでProcessのプロジェクトでは、
Environment.CurrentDirectoryを指定すると
Main.xamlが格納されているプロジェクトフォルダが取得されます

image.png
image.png

ライブラリのプロジェクトの場合

UiPathでLibraryのプロジェクトとして
Environment.CurrentDirectoryを指定すると
Studio実行上では、プロジェクトのフォルダが取得されます。
image.png

そのため、問題が無いように勘違いしてしまいます。

問題の表面化

問題が発生することに気づくのはここからです。

UiPathでカスタムライブラリーをパッケージ化し
image.png
image.png

先ほどのプロセスのプロジェクトで、カスタムライブラリーを追加し
実行すると、以下のように表示されます。

image.png

対策方法

やり方は、いろいろありますが私がお勧めする簡単なやり方を紹介します。

1. カスタムライブラリーのプロジェクトを開く

先ほどの、カスタムライブラリーのプロジェクトを開きます。
image.png

2. 引数を追加する

In_ProjectPathのように、引数を追加します。
image.png

折角なので、注釈もつけてあげましょう
image.png

3. 既定値の設定

ここが最大のミソになります。
既定値に、Environment.CurrentDirectoryを指定します。
image.png

4. 引数の値を表示

最後に、メッセージボックスの内容を引数の値が表示されるように変更します。
image.png

実行

(事前確認)ライブラリーのプロジェクトでStudio実行

変更内容を確認するため、ライブラリーのプロジェクトでStudioから実行します
ライブラリのプロジェクトフォルダーが取得されています。
image.png

プロセスのプロジェクトでStudio実行

本題のプロジェクトフォルダに切り替えて、修正したライブラリを更新し
カスタムアクティビティを使ってみましょう

image.png

まとめ

  • Environment.CurrentDirectory は、必ずプロジェクトフォルダを示すとは限らない
    • プロセスのプロジェクトで実行した場合、プロセスのプロジェクトフォルダが取得できる
    • ライブラリーのプロジェクトで実行した場合、ライブラリーのプロジェクトフォルダが取得できる
    • カスタムライブラリーを使用したプロセスプロジェクトを実行した時に、プロジェクトフォルダでないライブラリが格納されたフォルダーが取得される
  • 対処方法
    • ライブラリのカスタムアクティビティで、引数を追加し既定値にEnvoroment.CurrentDirectoryを設定する
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?