Desktop Bridgeのパッケージングでファイルを大量に扱うテクニック

Links many files for Desktop Bridge packaging
最新版のVisual StudioではデスクトップアプリをMicrosoft Storeで配布できるWindows Desktop Bridgeのパッケージングが、HTML/JavaScriptプロジェクトから、専用のMSIXパッケージプロジェクトで行えるようになりました。

デスクトップアプリの移植で悩ましいのが、ファイルの登録。数個のファイルだけならドロップだけで済みますが、階層の深いヘルプファイルや大量のリソースファイルを含めるとなると結構な手間となります。ファイル構成に変更があったらプロジェクトの構成も修正しなくてはいけません。

この問題を解決する方法として、パッケージングしたいファイルをリンクとして登録し、かつワイルドカードで定義する方法があります。

wapprojファイルをテキストエディタで開いたら、登録したいファイルグループを、このように記述します。
wapproj.xml
    <Content Include="..\docs\helpfiles\**\*.*">
      <Link>tnk_win\helpfiles\%(RecursiveDir)%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>

    <Content Include="..\client\dist\**\*.*">
      <Link>tnk_win\client\%(RecursiveDir)%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    
    <Content Include="..\locale\*.json">
      <Link>tnk_win\locale\%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
Contentは元のファイルの場所、Linkはリンク先、CopyToOutputDirectoryにPreserveNewestを指定することで、ビルド時に更新日が新しいファイルをコピーするようになります。ワイルドカードで定義しているので、フォルダ内容に変更があってもVisual Studioで自動で更新されます。
2019/11/23