UiPathのカスタムアクティビティの配布について(Orchestrator接続なし版)



[前回](https://qiita.com/masatomix/items/e75598f73b0e019044ac)までに作成したカスタムアクティビティですが UiPath Studioから使用するぶんには UiPath StudioもしくはVisual Studioの「NuGet パッケージマネージャ」の設定で、nupkgが配置される場所を指定すればOKでした。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/fc1f64ad-efe0-9a32-4e7d-8187fa7836f4.png)
上記のようにインストールすることで、Studio上で使うことが出来ました。
つづいて、UiPath Studioなどが存在しない単体のロボットだけの環境の場合はどうすればよいかを整理します。


## 対象のシナリオ
こんな感じに作成された、カスタムアクティビティを使用しているシナリオを考えます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/89aae440-8cfa-4c19-975d-43e9499dee81.png)

## Robotからカスタムアクティビティを使う(Orchestrator未接続ケース)
まずは、Orchestratorに接続していないケースを考えます。

さきほどのシナリオをStudioからPublishすると`%programData%\UiPath\Packages\`にCustomActivityTest.1.0.6857.26481.nupkg が配置されました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/dd50e9d4-979a-3550-8838-3177be3c3165.png)

タスクトレイのロボから実行してみると、、、、、。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/dd50ba48-ab60-e601-9caf-a80b2ae802bc.png)

エラーになってしまいました、、。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/29e66c40-6b40-1e08-fd81-42c0164d3c56.png)

カスタムアクティビティが見つからない、みたいな感じのエラーが出ていますね。

### カスタムアクティビティの配置場所
さて単体のロボットですが、カスタムアクティビティのフィードは、デフォルトでは`%programData%\UiPath\Packages\`配下になっているようです。実際、該当箇所に ActivitiesPathUtils.0.0.15.nupkg を配置して実行してみると、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/7668d27d-eec5-1a24-950e-80b3c365f0ab.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/dfde3e57-73bb-2f7d-9880-7f7782604bd9.png)
カスタムアクティビティが動いたようです。

ちなみに一度カスタムアクティビティが実行されると、下記の通り `C:\Users\ユーザ名\.nuget\packages`に nupkg が解凍されるようなので、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/3b18f93f-63a0-7251-7729-ec64fb61362f.png)
状況の切り分けをするには、毎回ココを削除する必要がありそうです。


### カスタムアクティビティの配置場所を明示的に指定する
さて、カスタムアクティビティのフィード場所ですが、明示的に指定することも出来るようです。Robotの設定する際によくでてくる、`%programData%\UiPath\UiPath.settings` に

```json:UiPath.settings
{
  "NuGetApiKey": "",
  "NuGetServerUrl": "%ProgramData%\\UiPath\\Packages",
  "ActivitiesFeed": "c:\\temp\\feed",     ←コレ
  "UiPathServerUrl": "",
  "TracingLevel": "Information",
  "LowLevelTracing": false,
  "SecureLicenseKey": "",
  "LoginToConsole": true,
  "ResolutionWidth": 0,
  "ResolutionHeight": 0,
  "ResolutionDepth": 0,
  "FontSmoothing": false,
  "ConnectionString": ""
}
```

こんな風に書くことで、明示的にnupkgを配置する場所を指定することも可能です。

あ、このファイルは管理者権限がないと編集できないことと、編集したらUiPath Robotサービスを再起動することを忘れないようにしましょう。。

### Studioが取り込んだnupkgの配置場所
ちなみにStudioで取り込んだ nupkg は [アクティビティパッケージの管理](https://studio.uipath.com/lang-ja/v2018.3/docs/managing-activities-packages) の説明を見ると`%localappdata%\UiPath\Activities`に解凍されるようですね。


## まとめ
Studio が取り込んだnupkgは、Robo(Attended/UnAttended Robo) とは別管理になってることが分かりました。そして、カスタムアクティビティを参照しているシナリオを Publishしてもそのnupkgにはカスタムアクティビティのnupkgは含まれていないので、別途でファイルを配置しないといけないってこともわかりましたね。

次回はOrchestratorに接続しているロボットは、[カスタムアクティビティの配布も自動化される](https://qiita.com/masatomix/items/af71fa799d53d3cbc08a)ところを整理していこうと思います。

おつかれさまでした。


## ソースコード
前回と同じソースですが
https://github.com/masatomix/UiPath_Path/tree/0.0.3
に配置しました。



## 関連リンク
- [UiPath.Settings ファイルの説明](https://robot.uipath.com/lang-ja/docs/uipathsettings-file-description) ロボットのガイド
- [アクティビティパッケージの管理](https://studio.uipath.com/lang-ja/v2018.3/docs/managing-activities-packages)  Studioのガイド




## 記事目次
- [UiPath Studioで使用するカスタムアクティビティの作成方法](https://qiita.com/masatomix/items/1f63513e80313a99faeb)
- [UiPath Studioで使用するカスタムアクティビティの作成方法 つづき(GUI構築)](https://qiita.com/masatomix/items/e75598f73b0e019044ac)
- [UiPathのカスタムアクティビティの配布について(Orchestrator接続なし版)](https://qiita.com/masatomix/items/9206873c2959451ac01e)   今回の記事
- [UiPathのカスタムアクティビティの配布について(Orchestrator接続あり版)](https://qiita.com/masatomix/items/af71fa799d53d3cbc08a) 次回の記事
-  [UiPathのカスタムアクティビティの配置場所について(アクティビティ開発者・UiPath開発者・Robot向け)](https://qiita.com/masatomix/items/b8988fcc2bd7046825f2)
- https://github.com/masatomix/UiPath_Path ソースのMaster Branch