かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Uno Platform の WebAssembly プロジェクトを Azure にデプロイする時にエラーになる

Visual Studio 2019 の発行ウィザードから Azure にデプロイしようとすると以下のようなエラーが出力ウィンドウに出るんですよね。

C:\Users\user name\.nuget\packages\uno.wasm.bootstrap\1.0.10\build\Uno.Wasm.Bootstrap.targets(125,5): Error : Failed to create directory \\?\C:\App1\App1.Wasm\bin\Release\netstandard2.0\dist\managed
C:\Users\user name\.nuget\packages\uno.wasm.bootstrap\1.0.10\build\Uno.Wasm.Bootstrap.targets(125,5): Error : System.ArgumentException: Illegal characters in path.
   at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
   at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
   at System.IO.Directory.CreateDirectory(String path)
   at Uno.Wasm.Bootstrap.ShellTask_v1be21f07f93cd3a369c95001065dbda54db9dca8.DirectoryCreateDirectory(String directory)
   at Uno.Wasm.Bootstrap.ShellTask_v1be21f07f93cd3a369c95001065dbda54db9dca8.CreateDist()
   at Uno.Wasm.Bootstrap.ShellTask_v1be21f07f93cd3a369c95001065dbda54db9dca8.Execute()

結論としては、WebAssembly プロジェクトのプロジェクトファイルの一番上にある PropertyGroup タグの下あたりに以下の定義を追加すれば回避できました。

<WasmShellEnableLongPathSupport>false</WasmShellEnableLongPathSupport>

Issue を立てたら丁寧に対応してもらえました。

github.com

Issue のタグに 2.1 というのがついてるので Uno Platform 2.1 がリリースされるときには、この回避策はいらない子になってると思います。