2012年8月2日木曜日

インストーラで作成されたショートカットにドロップできない

前回の記事で、アプリケーションやそのショートカットにドロップするとそのファイル名を受け取って起動して処理するというのができるようになりました。
さて、完成したプロジェクトからセットアッププロジェクトを作成し、それでインストールして、インストール時に作成されたデスクトップアイコンにドロップしようとしたら、ドロップ禁止マーク(?)が出てドロップを受け付けない……。自分で作成したショートカットへはドロップできるし動作もするんですが。
ショートカットのプロパティを見てみると、インストーラが作成したのと自分で作成したのとでは違いがあります。

インストーラが作成したのは[リンク先]が使用不可になっていて、表示されてる内容もファイルパスじゃなくなってます。[ファイルの場所を開く]と[アイコンの変更]ボタンも使用できません。特殊なショートカットで「アドバタイズショートカット」と呼ばれるものらしいです。こうなってるとファイルのドロップを受け付けないようです。
このショートカットをどうこうしてもドロップできるようにはならないみたいです。
そもそもインストーラが作成するショートカットを普通の(アドバタイズじゃない)ショートカットにする必要があるわけです。ということでまたググるw

アドバタイズショートカットではなく、普通のショートカットを作成する: .NET Tips: C#, VB.NET 

これによると、セットアッププロジェクトで生成されたmsiの中身を修正してやればよいとのこと。それには今の環境ではORCAが必要になるので、ちょっと前の記事の話になるわけですw
ショートカットは1個だけなので、DISABLEADVTSHORTCUTS プロパティを追加する方法にしました。これで成功~。ファイルのドロップができるようになりました。
ところでこの方法だと、セットアップビルドのたびにmsiを修正しなければいけないのでは……しかしこれはかつて通った道w 自分のブログの過去記事見て対応しましたw


0 件のコメント: