随感録 2019年6月

2019-06-09 (Sun) Visual Studio 2019 (VS2019) で UWPアプリのビルド時に「'MakePri.exe'が見つかりません。」エラー

Windows 10 v1903 (May 2019 Update) にアップグレードした。こちらは全然トラブルなし。そろそろ安定した、か?

Visual Studio 2019 (VS2019) に上げた。いったん VS2017をアンインストールして、できるだけきれいにしてから入れた。

起動がえらく速くなっている。これはいい。

UWPプロジェクトをビルドしようとすると、どれであれ、次のエラーになってしまう。

エラー ファイル 'MakePri.exe' が見つかりません。詳しくは、http://go.microsoft.com/fwlink/?LinkID=798187 をご覧ください。

この件について、同じエラーに遭遇している人がチラホラいるが、解決法が正しくない。

まず、問題がどこで起こっているか。 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage フォルダの, Microsoft.AppxPackage.Targets ファイルで発生している。

makepri.exe ファイルが見つからない。

環境変数でフルパスを与えてやると通る、という上の情報に基づいてやってみた。バッチファイルを作り setx コマンドで環境変数をエクスポートする。

makepri.exe が上手くいっても, 次々に見つからないファイルがある。

setx MakePriExeFullPath "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\makepri.exe"
setx MakeAppxExeFullPath "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\makeappx.exe"
setx SignAppxPackageExeFullPath "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe"
setx AppxPackagingComponentManifestPath "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifest"

残念! この次の MrmSupport.dll がアーキテクチャに依存するので、一意に決めることができない。

正解は,

WindowsSdkDir 環境変数に、正しい値を設定してやるだけ。削除するんじゃない。値は C:\Program Files (x86)\Windows Kits\10\. 末尾に '\' がある。

確かに C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A というフォルダもあるが、こちらは誤り。