TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

Microsoft Storeでコマンドラインツールを公開する

以前にVectorで公開していた「WAVファイル変換・抽出ツールwavext」を、Microsoft Storeで公開した。

apps.microsoft.com

wavext

mp3やflacなどの圧縮音声ファイルや、動画から、音声をWAVとして抽出するツールである。
サンプリングレート変換やステレオ/モノラル変換、量子化ビット数変換も行える。

以前はDirectShowを使用していたが、DirectShowはMedia Foundationに置き換えられているので、Media Foundationで実装し直した。
GPT-5.4を使って実装した。

コマンドラインツールの公開方法

Microsoft Storeは、コマンドラインツールも配布できるようになっている。

Microsoft Storeからインストールすると、環境変数PATHを通すことなく、コマンドプロンプトやPowerShellからコマンドを実行できるようになる。

Visual Studioで、ソリューションにMSIXパッケージプロジェクトを追加して、コンソールアプリケーションのプロジェクトを参照設定して、Package.appxmanifestに、

      <Extensions>
        <uap3:Extension
          Category="windows.appExecutionAlias"
          Executable="wavext\wavext.exe"
          EntryPoint="Windows.FullTrustApplication">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="wavext.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>
      </Extensions>

を追加すればよい。

まとめ

Microsoft Storeは、環境変数PATHとか気にする必要がないのでコマンドラインツールの配布にも便利である。
MSIXの設定が面倒そうだと思っていたが、やってみれば全然難しくなかった。
今後はこの方法でコマンドラインツールを公開していこうと思う。