概要
お客様より多くのお問合せを頂いております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
加えて、弊社社員の作成した記事として以下の記事がございます。
参考:
[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プロジェクトの実行に必要となる.NETランタイムはStudioに同梱されており、別途インストールは不要です。
- クロスプラットフォーム - 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の確認が可能です。
以下の画像では、レガシを利用していることが確認できます。
参考:
Project.jsonファイルについて
https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/about-the-projectjson-file
ー抜粋ー
ターゲット フレームワーク
プロジェクトに設定されたターゲット フレームワークです。
既知の注意事項
1.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
2.ライブラリも対応OSを「Windows」としてパブリッシュしなおす必要がある
ライブラリは対応OSが同じプロセスのみにインストールできる仕様となります。カスタムライブラリをご利用の場合、Windowsプロジェクトでご利用いただくためには、対応OSを「Windows」としてパブリッシュしなおす必要があります。
参考:
再利用可能なコンポーネントをオートメーション プロジェクトに追加する
https://docs.uipath.com/studio/lang-ja/docs/about-libraries#considerations-for-installing-libraries-in-projects
ー抜粋ー
クロスプラットフォーム対応のライブラリは、クロスプラットフォーム プロジェクトと Windows プロジェクトにインストールできます。Windows - レガシ ライブラリと Windows ライブラリは、対応 OS (バージョン) が同じプロセスにのみインストールできます。
3.『ワークフローファイルを呼び出し(Invoke Workflow)』アクティビティで指定するワークフロー名に、変数を利用できなくなる
Windowsプロジェクトではワークフローをパブリッシュ時にコンパイルする都合上、Studio v23.4系までは「ワークフローファイルを呼び出し(Invoke Workflow)」アクティビティで指定するワークフロー名に、変数・引数を利用できない仕様です。
回避策として変数ではなく、ワークフローのパスを指定するか Studio v23.10以降にアップグレードください。
参考:
ワークフローファイルを呼び出し
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
4.デバッグ実行時、「プロジェクトに検証エラーがないか確認しています」表示が出て時間がかかる、
「Windows - レガシ」は実行やパブリッシュでコンパイルが行われませんが、「Windows」ではコンパイルが行われているため、コンパイルの前の検証に時間を要してしまうため、仕様として以前より時間を要することがございます。
回避策としてできるだけ最新のバージョンのUiPath Studioをご利用ください。
5.Windowsパブリッシュ後に.nupkgファイルを展開したワークフローファイルの取得、Orchestratorパッケージ画面でのワークフローの確認ができない
Windowsプロジェクトのパブリッシュ時には、既定値ではワークフローがコンパイルされ、ワークフローファイルそのものは含まれなくなることが原因です。
回避策としてソースを含めるにチェックを入れて頂くと、ワークフローが確認できるようになります。
参考:
オートメーション プロジェクトのパブリッシュについて
https://docs.uipath.com/ja/studio/standalone/2022.10/user-guide/about-publishing-automation-projects
ー抜粋ー
ソースを含める - このオプションを選択すると、これまで非公開になっていたワークフローを含むすべての .xaml ソースが、パブリッシュされるパッケージ内にパッケージ化されます。
6.『PowerShellを呼び出し』アクティビティを使用してPowerShellコマンドを実行する場合、実行されるPowershellのビット数が異なる
Windowsレガシプロジェクトでは Windows PowerShell (x86)(32ビット)、Windowsプロジェクトでは Windows PowerShell(64ビット)が実行される
回避策としてWindowsプロジェクトで32ビットのPowerShell を実行するには『プロセスを開始』アクティビティを使用して32ビットのPowerShellのパスを明示的に指定して呼び出します。
パス: "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"
7.『プロセスを開始』のファイルパスに"cmd.exe"を指定してコマンドプロンプトを呼び出す場合、呼び出し元と呼び出し先のビット数が異なる。
呼び出し元がWindowsレガシでは32bit、Windowsでは64bitが起動されます。
回避策としてWindowsプロジェクトで32bitのコマンドプロンプトを実行するには『プロセスを開始』アクティビティを使用して32ビットのPowerShellのパスを明示的に指定して呼び出します。
パス:"C:\Windows\SysWOW64\cmd.exe"
8.Windowsプロジェクトで『トライキャッチ』アクティビティの例外の種類をドロップダウンリストから選択しようとしても選択リストが消えて選択できない
以下のStudioバージョンで修正済です。以下のバージョン以降にアップグレードください。
・v22.10.10
・v23.4.3
上記バージョンにアップグレードできない場合は以下の回避策をお試しください。
・キーボードの「矢印Upキー」と「矢印Downキー」を使って、例外の種類を選択し、Enterキーで確定ください。
9.32bit版UiPath StudioでWindowsプロジェクトが実行できない
32bit版UiPath Studioでは対応OS「Windows」でプロジェクト作成・編集・パブリッシュすることはできますが、作成したプロセスを実行できません。
回避策として、プロジェクト及びプロセスを64bit版Uipath Studioにコピーすると64bit版で実行できます。
10.デバッグ時や実行時に「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
11.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 パッケージをアップロードできるようになりました。
12.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 のいずれかを選択できます。
13.『テキストファイルを読み込み』や『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
・方向:入力
上記内容はUiPath.System.Activities 24.3.0で修正済です。
https://docs.uipath.com/ja/activities/other/latest/workflow/release-notes-uipath-system-activities#v2430-bug-fixes
ー抜粋ー
[テキスト ファイルを読み込み]、[テキスト ファイルに書き込み]、および [文字列を追加書き込み] のアクティビティで、[エンコード] の値として shift_jis がサポートされるようになりました。
14.Windowsプロジェクトで作成したワークフローをWindowsレガシに戻すことができない
一度WindowsレガシのWindowsプロジェクトマイグレーションを行ってしまうと、Windowsレガシに戻すことができない仕様のため、Windowsレガシをご利用になられる場合はWindowsレガシでワークフローを作成し直す必要があります。
WindowsレガシからWindowsプロジェクトへのマイグレーションを行いたい場合、何か問題が発生しても上記の通りWindowsレガシに戻すことができないことから、マイグレーション前にWindowsレガシのバックアップを推奨します。
15.Windowsプロジェクトで作成したワークフローのアクティビティをWindowsレガシのワークフローにコピーできない
Windowsプロジェクトで作成したワークフローのアクティビティはWindowsレガシでは互換性がなくWindowsレガシのワークフローにコピーできない仕様です。
16.Windowsプロジェクトでコンパイル時に「'{引数名}':メンバー名をそれを囲む型の名前と同じにすることはできません」エラーが発生する
Xamlファイル名と同じ名称の引数を設定していることが原因です。
例
Xamlファイル名:Argument.xaml
引数:Argument
回避策としてXamlファイル名と異なる引数名を設定します。
例
Xamlファイル名:Argument.xaml
引数:Argument1
17.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
18.Windowsプロジェクト変換後、StudioXで「このプロジェクトは StudioX プロファイルに対応していません。」エラー
Windows Project変換後以下のエラーが表示されます。
このプロジェクトは StudioX プロファイルに対応していません。Studio で開いてエラーを修正できます。
ワークスペース変数が 1 つ以上定義されています。
回避策1.
Studioをご利用可能な環境の場合、Windows変換後のファイルを一時的にStudioで開いていただき、
『単一の Excel プロセス スコープ』を選択後に
変数パネルに表示される、「Notes」という変数を削除し保存、
StudioXに戻してファイルを開くことができるかご確認ください。
回避策2.
Studioが利用できない環境の場合、Main.xamlをメモ帳などで編集いただけますでしょうか。
プロジェクトのバックアップを取得いただいた後にMain.xamlをメモ帳で開きます。
Main.xamlの中に記載されている以下の部分を削除し、保存します。
保存後、StudioXで該当ファイルが開けることをご確認ください。
<Variable x:TypeArguments="ue:IWorkbookQuickHandle" Default="[new WorkbookQuickHandle(workbookPath:="Project_Notebook.xlsx",visible:=True,autoSave:=False,createNew:=True,readOnly:=False,isWorkspace:=True)]" Name="Notes" />
19.SecureString型の変数で「型'System.Net.NetworkCredential'が見つかりません」エラー
SecureString型の変数を再作成ください。
おわりに
本記事で紹介した内容が皆様のお役に立てれば幸いです。また今後も随時更新予定ですのでよろしくお願いします。