LoginSignup
9
5

【UiPath】WindowsレガシからWindowsプロジェクトへのマイグレーションに伴う注意事項について【随時更新予定】

Last updated at Posted at 2023-09-11

概要

お客様より多くのお問合せを頂いておりますWindowsレガシからWindowsプロジェクトへのマイグレーションに伴う注意事項についてご案内いたします。
※注:私の投稿する内容は個人の見解であり、所属団体を代表するものではありません。

これまでの情報発信

注意事項等については既にUiPathグローバルMVPの末武様がForum記事並びにQiita記事で投稿されております。

参考:
Troubleshooting Guide : Conversion from Windows-Legacy project to Windows project
https://forum.uipath.com/t/troubleshooting-guide-conversion-from-windows-legacy-project-to-windows-project/500552?u=yoichi

参考:
UiPath WindowsレガシーからWindowsプロジェクトへの変換における問題・注意事項とトラブルシューティングについて(22.10.3版)
https://qiita.com/SuetakeYoichi/items/f9d663f0ed796983f6d4

また、弊社におきましても以下の公式ガイドでマイグレーションに関する情報を発信しております。

参考:
Windowsレガシプロジェクトの非推奨化
https://docs.uipath.com/ja/studio/standalone/2023.4/user-guide/deprecation-of-the-windows-legacy-compatibility

参考:
非推奨化のタイムライン
https://docs.uipath.com/ja/overview/other/latest/overview/deprecation-timeline

加えて、弊社社員の作成した記事として以下の記事がございます。こちらではWindowsレガシーは当面は利用可能(非推奨であってもサポート対象)であり、慌ててマイグレーションする必要はない旨、記載されております。本記事の後段で具体的な注意事項や事例につき共有しますが、マイグレーションによって発生する影響が複数ございますことから、当方としても非推奨であっても慌ててマイグレーションを行う必要はない認識となります。

参考:
[UiPath] Windowsレガシの非推奨化に伴うマイグレーションについて
https://note.com/tetsuji_endo/n/n7464498b2979

注意事項で後述しますが、マイグレーションの際に.NETバージョンに起因するマイグレーションの非互換が発生します。つまり、一度WindowsレガシからWindowsプロジェクトへのマイグレーションを行ってしまうと、マイグレーションで問題が発生したとしても元のWindowsレガシに切り戻すことができない仕様となります。したがってマイグレーションを行う場合は、マイグレーション前にWindowsレガシで作成したプロジェクトのバックアップを推奨します。

UiPath の各プロジェクトについて

UiPath のプロジェクトのランタイムはWindows-レガシ、クロスプラットフォーム、Windowsの3種類あり、ランタイムライブラリや動作環境が異なります。

プロジェクト(対応OS) ランタイムライブラリ 動作環境 パブリッシュ時
Windows – レガシ .NET Framework 4.6.1 Windows(32 bit)
クロスプラットフォーム .NET 6 Windows Linux MacOS (64 bit) 要コンパイル
Windows .NET 6 Windows(64 bit) 要コンパイル

対応OS:Windowsレガシとは

Studio v21.10までのUiPathプロジェクトは上記の通り.NET Framework 4.6.1で動作しておりました。Windowsレガシは.NET Framework 4.6.1でのランタイムプロジェクトを指します。

対応OS:クロスプラットフォーム、Windowsとは

.NET Framework 4.6.1のサポート終了にあわせて、Studio v21.10系より、.NET 6でのランタイムプロジェクトの作成が可能となりました。

  • Windows - Windows でサポートされる .NET 6 を使用します。これは既定のオプションです。
  • クロスプラットフォーム - Windows OS、Linux、MacOSのクロスプラットフォームでサポートされる .NET 6 を使用します。

参考:
リリースノート Studio v21.10.6
https://docs.uipath.com/ja/studio/standalone/2021.10/user-guide/release-notes-2021-10-6
ー抜粋ー
Studio が .NET 6 を使用するようになりました。

参考:
Windows レガシ プロジェクトの非推奨化
https://docs.uipath.com/ja/studio/standalone/2023.4/user-guide/deprecation-of-the-windows-legacy-compatibility

対応OSの確認方法

プロジェクトフォルダー内のproject.jsonファイルの"targetFramework"を確認頂くことで対応OSの確認が可能です。
以下の画像では、レガシを利用していることが確認できます。
image.png

参考:
Project.jsonファイルについて
https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/about-the-projectjson-file
ー抜粋ー
ターゲット フレームワーク
プロジェクトに設定されたターゲット フレームワークです。

既知の注意事項

アクティビティパッケージのバージョンによって対応するランタイムが異なり、Windowsプロジェクトに未対応のアクティビティパッケージが存在する

未対応のアクティビティの例:
・UiPath.SAP.BAPI.Activities
※Windows、クラスプラットフォームには対応しておりません。
参考:
https://docs.uipath.com/activities/lang-ja/docs/sap-bapi-project-compatibility
・UiPath Marketplaceで取得可能なほとんどのカスタムアクティビティ(コミュニティサポート)
※例:UiPathTeam.Salesforce.ExtensionPackage.Activities、UiPathTeam.Confluence.Activitiesなど
・Microsoft.Activities.Extensions
・UiPath.Mail.Activitiesのうち以下の一部のアクティビティ

・Exchange メール メッセージを削除
・Exchange スコープ
・Exchange メール メッセージを取得
・メッセージをフォルダーに移動
・Exchange メール メッセージを送信
・IBM Notes メール メッセージを削除
・IBM Notes メール メッセージを取得
・IBM Notes メール メッセージを移動
・IBM Notes メール メッセージを送信

参考:
プロジェクトの対応OS:UiPath.Mail.Activities
https://docs.uipath.com/activities/lang-ja/docs/mail-project-compatibility

カスタムライブラリをご利用の場合、Windowsプロジェクトでご利用いただくためには、ライブラリも対応OSを「Windows」としてパブリッシュしなおす必要がある

ライブラリは対応OSが同じプロセスのみにインストールできる仕様となります。

参考:
再利用可能なコンポーネントをオートメーション プロジェクトに追加する
https://docs.uipath.com/studio/lang-ja/docs/about-libraries#considerations-for-installing-libraries-in-projects
ー抜粋ー
クロスプラットフォーム対応のライブラリは、クロスプラットフォーム プロジェクトと Windows プロジェクトにインストールできます。Windows - レガシ ライブラリと Windows ライブラリは、対応 OS (バージョン) が同じプロセスにのみインストールできます。

​Windowsプロジェクトではワークフローをパブリッシュ時にコンパイルする都合上、「ワークフローファイルを呼び出し(Invoke Workflow)」アクティビティで指定するワークフロー名に、変数を利用できなくなる

Studio v23.4系までは「ワークフローファイルを呼び出し(Invoke Workflow)」アクティビティで指定するワークフロー名に、変数・引数を利用できない仕様です。

回避策として変数ではなく、ワークフローのパスを指定ください。

参考:
ワークフローファイルを呼び出し
https://docs.uipath.com/ja/activities/other/latest/workflow/invoke-workflow-file

ー抜粋ー
Windows プロジェクトおよびクロスプラットフォーム プロジェクトでは、ワークフロー ファイル名としての変数と引数の使用はサポートされていません。ワークフロー ファイル名として変数や引数を使用すると、「式の使用は現在サポートされていません。」というエラー メッセージが表示されます。

2024年1月追記

Studio v23.10系で「ワークフローファイルを呼び出し(Invoke Workflow)」アクティビティで指定するワークフロー名に、変数・引数を利用できるようになりました

参考:
その他の改良点
https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/release-notes-2023-10-0#other-improvements

デバッグ実行時、「プロジェクトに検証エラーがないか確認しています」表示が出て以前より時間を要する

「Windows - レガシ」は実行やパブリッシュでコンパイルが行われませんが、「Windows」ではコンパイルが行われているため、コンパイルの前の検証に時間を要してしまうため、仕様として以前より時間を要することがございます。

回避策としてできるだけ最新のバージョンのUiPath Studioをご利用ください。

Windowsパブリッシュ後に.nupkgファイルを展開してワークフローファイルを取得したり、Orchestratorパッケージ画面にてワークフローを確認することができない

Windowsプロジェクトのパブリッシュ時には、既定値ではワークフローがコンパイルされ、ワークフローファイルそのものは含まれなくなることからです。

回避策としてソースを含めるにチェックを入れて頂くと、ワークフローが確認できるようになります。

参考:
オートメーション プロジェクトのパブリッシュについて
https://docs.uipath.com/ja/studio/standalone/2022.10/user-guide/about-publishing-automation-projects
ー抜粋ー
ソースを含める - このオプションを選択すると、これまで非公開になっていたワークフローを含むすべての .xaml ソースが、パブリッシュされるパッケージ内にパッケージ化されます。

『PowerShellを呼び出し』アクティビティを使用してPowerShellコマンドを実行する場合、Windowsレガシプロジェクトでは Windows PowerShell (x86)(32ビット)、Windowsプロジェクトでは Windows PowerShell(64ビット)が実行される

回避策としてWindowsプロジェクトで32ビットのPowerShell を実行するには『プロセスを開始』アクティビティを使用して32ビットのPowerShellのパスを明示的に指定して呼び出します。
パス: "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"

『プロセスを開始』のファイルパスに"cmd.exe"を指定してコマンドプロンプトを呼び出す場合、呼び出し元がWindowsレガシでは32bit、Windowsでは64bitが起動する。

回避策としてWindowsプロジェクトで32bitのコマンドプロンプトを実行するには『プロセスを開始』アクティビティを使用して32ビットのPowerShellのパスを明示的に指定して呼び出します。
パス:"C:\Windows\SysWOW64\cmd.exe"

Windowsプロジェクトで『トライキャッチ』アクティビティの例外の種類をドロップダウンリストから選択しようとしても選択リストが消えて選択できない

以下のStudioバージョンで修正済です。
・v22.10.10
・v23.4.3

上記バージョンにアップグレードできない場合は以下の回避策をお試しください。
・キーボードの「矢印Upキー」と「矢印Downキー」を使って、例外の種類を選択し、Enterキーで確定ください。

32bit版UiPath StudioでWindowsプロジェクトが実行できない

32bit版UiPath Studioでは対応OS「Windows」でプロジェクト作成・編集・パブリッシュすることはできますが、作成したプロセスを実行できません。
回避策として、プロジェクト及びプロセスを64bit版Uipath Studioにコピーすると64bit版で実行できます。

デバッグ時や実行時に「Expression Activity 型 'VisualBasicValue`1' は、実行するにはコンパイルする必要があります」エラーが発生する

エラーメッセージ

System.NotSupportedException: Expression Activity 型 'VisualBasicValue`1' は、実行するにはコンパイルする必要があります。ワークフローがコンパイルされていることを確認してください。   at System.Activities.Expressions.CompiledExpressionInvoker.InvokeExpression(ActivityContext activityContext)
   at Microsoft.VisualBasic.Activities.VisualBasicValue`1.Execute(CodeActivityContext context)

エラーの発生するアクティビティの設定箇所で利用しているダブルクォーテーションに問題がある可能性がございます。

回避策としてエラーの発生するアクティビティの設定箇所で利用しているダブルクォテーションを一度削除し、手動で半角(「"」)のまっすぐなダブルクォテーションをキーボードから入力しなおすことで、本事象が解消するかお試しください。

上記で事象が解消しない場合はダブルクォーテーションを変更したアクティビティの手動削除・再作成をお試しください。
参考(英文記事):
Getting Expression Activity Type VisualBasicValue1 Requires Compilation In Order To Run
https://uipath.my.salesforce-sites.com/CaseView/articles/Knowledge/Getting-expression-Activity-type-VisualBasicValue1-requires-compilation-in-order-to-run?lang=en_US

Orchestrator v20.10.6より前のバージョンでWindowsプロジェクトのパブリッシュに失敗する

回避策としてv20.10.6以降のバージョンにアップデートください。

参考(英文記事):
Publish Of Windows Project Fails In Orchestrator Version Below 20.10.6
https://uipath.my.salesforce-sites.com/CaseView/articles/Knowledge/Publish-Of-Windows-Project-Fails-In-Orchestrator-Version-Below-20-10-6?lang=en

参考:
リリースノートーOrchestrator v20.10.6ー
https://docs.uipath.com/ja/orchestrator/standalone/2020.10/release-notes/release-notes-2020-10-6
ー抜粋ー
.net5.0 をターゲットにした NuGet パッケージをアップロードできるようになりました。

UiPath.Database.ActivitiesがWindowsへマイグレーション後に動作しない

UiPath.Database.Activitiesで以下のエラーが出力されます。

("Database activities not working anymore due to the following error: Connect SQL: A connection was successfully established with the server, but then an error occurred during the login process. (provider SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted"エラー)

Windows プロジェクトで新しいデータベース接続を構成する際の SQL クライアントのオプションが、Microsoft.Data.SqlClient のみになりましたので、回避策としてMicrosoft.Data.SqlClientを選択ください。

※Windows - レガシ プロジェクトの場合は System.Data.SqlClient と Microsoft.Data.SqlClient のいずれかを選択できます。

参考:
リリース ノートーUiPath.Database.Activitiesー
https://docs.uipath.com/ja/activities/other/latest/developer/release-notes-database-activities#v170-new-features-and-improvements
ー抜粋ー
Windows プロジェクトで新しいデータベース接続を構成する際の SQL クライアントのオプションが、Microsoft.Data.SqlClient のみになりました。Windows - レガシ プロジェクトの場合は System.Data.SqlClient と Microsoft.Data.SqlClient のいずれかを選択できます。

『テキストファイルを読み込み』や『CSVを読み込み』アクティビティで「Shift_JIS is not supported」エラー

『テキストファイルを読み込み』や『CSVを読み込み』アクティビティのオプション「エンコード」に"shift_jis"を設定すると以下のエラーが発生します。

'shift_jis is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')

Windowsプロジェクトでは標準だとShift_JISがサポートされなくなるため、明示的に文字コードを追加する必要があります。

回避策として、アクティビティ実行前に、プロバイダの登録が必要です。
ワークフローに、『InvokeMethod』アクティビティを追加し、上記のコードを実行します。

TargetType: System.Text.Encoding
TargetObject:※設定不要
MethodName:RegisterProvider
パラメーター:
・型:EncodingProvider
・値:System.Text.CodePagesEncodingProvider.Instance
・方向:入力

image.png

Windowsプロジェクトで作成したワークフローをWindowsレガシに戻すことができない

一度WindowsレガシのWindowsプロジェクトマイグレーションを行ってしまうと、Windowsレガシに戻すことができない仕様のため、Windowsレガシをご利用になられる場合はWindowsレガシでワークフローを作成し直す必要があります。

WindowsレガシからWindowsプロジェクトへのマイグレーションを行いたい場合、何か問題が発生しても上記の通りWindowsレガシに戻すことができないことから、マイグレーション前にWindowsレガシのバックアップを推奨します。

Windowsプロジェクトで作成したワークフローのアクティビティをWindowsレガシのワークフローにコピーできない

Windowsプロジェクトで作成したワークフローのアクティビティはWindowsレガシでは互換性がなくWindowsレガシのワークフローにコピーできない仕様です。

Windowsプロジェクトでコンパイル時に「'{引数名}':メンバー名をそれを囲む型の名前と同じにすることはできません」エラーが発生する

Xamlファイル名と同じ名称の引数を設定していることが原因です。


Xamlファイル名:Argument.xaml
引数:Argument

回避策としてXamlファイル名と異なる引数名を設定します。


Xamlファイル名:Argument.xaml
引数:Argument1

Windowsプロジェクトで32bitのエミュレーターに対して『ターミナル セッション』を使用した際の接続エラー

Windowsプロジェクトで作成されたプロジェクトは64bitのプロセスとして実行されるため、アクティビティからビット深度の異なる32bit版のエミュレーターを使用するためには次の条件を満たす必要があります。

UiPath.Terminal.Activities: 2.6.0以上
UiPathのバージョンに合致した32bit版の.NET 3 Desktop Runtimeがインストールされていること
なお、必要となる.NET 1 Desktop RuntimeのバージョンはUiPathのバージョンによって異なるため、 適切なものをインストールしてください。

UiPathのバージョンと.NET 1 Desktop Runtimeのバージョンの対応例:

UiPath 2021.10.6 以降: .NET 6
UiPath 2021.10.5 以前: .NET 5

参考:
Windowsプロジェクトで32bitのエミュレーターに対して『ターミナル セッション』を使用した際の接続エラー
https://forum.uipath.com/t/windows-32bit/705502

おわりに

本記事で紹介した内容が皆様のお役に立てれば幸いです。また今後も随時更新予定ですのでよろしくお願いします。

9
5
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
9
5