LoginSignup
2
6

More than 5 years have passed since last update.

UiPathのカスタムアクティビティ開発で、外部ライブラリを使用する

Last updated at Posted at 2018-10-19

UiPathでJSON文字列をDictionaryで生成する に書いたDictionaryから JSON文字列を作成するTIPSについて、あ、そういうアクティビティを作ったら便利かな、と思って作り始めていますが、

Newtonsoft.Json.JsonConvert.SerializeObject(jsonDic)

コレを呼び出すには プロジェクトがNewtonsoft.Json ライブラリを参照できている必要があります。また成果物のnupkgにもその依存関係を記述しておく必要があります。それらを設定する時の作業メモ。

作業手順

結論をいうと外部ライブラリの参照は、Visual Studioプロジェクト内でライブラリの依存関係を設定すればOKです。Visual Studioの NuGetパッケージの管理画面で依存関係を設定すれば、そのままnupkgにもその依存関係が反映されるようです。

ということで流れは以下の通り。

  • UiPath Studioがライブラリをダウンロードするのに使用するNuGetサーバを、Visual StudioのNuGetパッケージ管理画面で追加
  • そこから必要なライブラリ(今回はNewtonsoft.Json) を指定

すればOK。

今回のソースコード

修正前ですが、
https://github.com/masatomix/UiPath_Path/tree/0.1.32
にあります。

UiPath StudioのオフィシャルのNuGetサーバの追加

はじめに、UiPath Studioがライブラリのダウンロードに使用するNuGetサーバを、Visual Studioからも参照できるようにします。

メニューバーの ツール >> NuGetパッケージマネージャ >> パッケージマネージャ設定 を開き、パッケージソースとして、 https://www.myget.org/F/workflow/ を追加します。名前は「UiPathオフィシャル」としました。
image.png

NuGetサーバからライブラリのダウンロード

メニューバーの ツール >> NuGetパッケージマネージャ >> ソリューションのNuGetパッケージ管理 を開きます。

下記のような検索画面になるので、右上のパッケージソースを「UiPathオフィシャル」、検索ボックスに「Newtonsoft」と入れると、サイトを検索して結果を一覧してくれます。今回は Newtonsoft.Jsonを選択し、インストールをクリックしましょう。
image.png

よろしいですか?みたいなのをOKすると、

'.NETFramework,Version=v4.5' を対象とするプロジェクト 'Utils' に関して、パッケージ 'Newtonsoft.Json.8.0.3' の依存関係情報の収集を試行しています
依存関係情報の収集に 1.93 sec かかりました
DependencyBehavior 'Lowest' でパッケージ 'Newtonsoft.Json.8.0.3' の依存関係の解決を試行しています
依存関係情報の解決に 0 ms かかりました
パッケージ 'Newtonsoft.Json.8.0.3' をインストールするアクションを解決しています
パッケージ 'Newtonsoft.Json.8.0.3' をインストールするアクションが解決されました
'UiPath オフィシャル' からパッケージ 'Newtonsoft.Json 8.0.3' を取得しています。
パッケージ 'Newtonsoft.Json.8.0.3' をフォルダー 'Z:\git\Path\packages' に追加しています
パッケージ 'Newtonsoft.Json.8.0.3' をフォルダー 'Z:\git\Path\packages' に追加しました
パッケージ 'Newtonsoft.Json.8.0.3' を 'packages.config' に追加しました
スクリプト ファイル 'Z:\git\Path\packages\Newtonsoft.Json.8.0.3\tools\install.ps1' を実行しています...
'Newtonsoft.Json 8.0.3' が Utils に正常にインストールされました
NuGet の操作の実行に 14.96 sec かかりました
経過した時間: 00:00:17.2103937
========== 終了 ==========

うまくいったようです。実際、コレをやるまでは、ライブラリがないってエラーになってたのが、
image.png

エラーが解消されましたね。
image.png

nupkg作成

さて、nupkgを作成してみると、、、、

Z:\git\Path\Utils> nuget.exe pack Utils.csproj -Prop Configuration=Release
'Utils.csproj' からパッケージをビルドしています。
MSBuild auto-detection: using msbuild version '15.8.169.51996' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin'.
'Z:\git\Path\Utils\bin\Release' のファイルをパックしています。
メタデータに 'Utils.nuspec' を使用しています。
packages.config が見つかりました。依存関係として登録されているパッケージを使用します
Successfully created package 'Z:\git\Path\Utils\kino.UiPath.Utils.Activities.0.1.35.nupkg'.

中身を、NuGet Package Explorer でみてみると

image.png

nupkgにも追加されているようですね!UiPath Studioにインストールして、Newtonsoft.Jsonライブラリが呼び出せることも確認しておきましょう。

おつかれさまでしたー。

参考:UiPath Studio 2018.3 が参照しているNuGetサーバについて

さて先にでてきた、UiPathオフィシャルの https://www.myget.org/F/workflow/ ですが、これらの情報は UiPath Studio 2018.3の設定から取ってくることができます。
image.png

抜き出してみると以下の通り。

名前 URL
オフィシャル https://www.myget.org/F/workflow/
コミュニティ https://gallery.uipath.com/api/v2
nuget.org https://api.nuget.org/v3/index.json ← これは手動で追加したかも
ローカル C:\Users\[ユーザ名]\AppData\Local\UiPath\app-18.3.1\.\Packages

したがって、UiPath Studioのカスタムアクティビティ開発で外部ライブラリを参照するには、Visual Studioのパッケージマネージャから上記らを設定しておくのがよいかもしれませんね。

関連リンク

2
6
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
2
6