背景
winget の portable (zip) インストーラーでは PortableCommandAlias として symlink が作成されるが、.NET self-contained アプリの apphost は symlink の場所を基準に DLL を探すため、ターミナルから直接起動できない(#53 コメント参照)。
また、ZIP を手動で展開した場合もデスクトップにショートカットが自動作成されないため、毎回フォルダを開いて exe を起動する必要がある。
提案
設定画面(About または General)に「デスクトップにショートカットを作成」ボタンを追加する。
仕様
!PackageContext.IsPackaged(ZIP 版)の場合のみボタンを表示
- MSIX 版はスタートメニューに自動追加されるため不要
Environment.ProcessPath で exe のフルパスを取得
.lnk ショートカットを IShellLink COM 経由でデスクトップに作成
- 作業ディレクトリを exe のディレクトリに設定(winget symlink 問題の回避策にもなる)
- 既にショートカットが存在する場合は上書き確認
参考:winget symlink 問題
| 起動方法 |
動作 |
xtimelineviewer(ターミナル直接) |
❌ DLL 解決失敗 |
Start-Process xtimelineviewer.exe(PowerShell) |
✅ |
| デスクトップショートカット(.lnk) |
✅(作業ディレクトリ設定で解決) |
| Win+R |
未検証(おそらく ✅) |
背景
winget の portable (zip) インストーラーでは
PortableCommandAliasとして symlink が作成されるが、.NET self-contained アプリの apphost は symlink の場所を基準に DLL を探すため、ターミナルから直接起動できない(#53 コメント参照)。また、ZIP を手動で展開した場合もデスクトップにショートカットが自動作成されないため、毎回フォルダを開いて exe を起動する必要がある。
提案
設定画面(About または General)に「デスクトップにショートカットを作成」ボタンを追加する。
仕様
!PackageContext.IsPackaged(ZIP 版)の場合のみボタンを表示Environment.ProcessPathで exe のフルパスを取得.lnkショートカットをIShellLinkCOM 経由でデスクトップに作成参考:winget symlink 問題
xtimelineviewer(ターミナル直接)Start-Process xtimelineviewer.exe(PowerShell)