2007-07-02

インストーラ作成時の落とし穴

今日はWindows Mobile用アプリのインストーラを作ってみました。
肝心のアプリは何も作っていませんが...。
 
新しいプロジェクトを選択して「その他のプロジェクトの種類」-「セットアップと配置」から 「スマートデバイスCABプロジェクト」を選択します。
ここでうっかり「CABプロジェクト」を選択すると何度実行しても「インストールに失敗しました」というそっけないエラーに遭遇して暫く悩むことになります。(経験者談)
 
正しいプロジェクト作成したら、インストールしたいアプリのプロジェクトのプライマリ出力を追加してビルドします。
 
ところが、ほとんど何もしないプログラムのはずなのにビルドエラーが出ました。
Warning: Section [RegKeys] has no data
Warning: Section [DefaultInstall] key "AddReg" - there are no section entries to process
Warning: Section [Shortcuts] has no data
Error: The INF file contains Unicode characters that could not be converted correctly to ANSI
 
CABプロジェクトのDebugフォルダの中にある.infファイルを覗いてみると Provider、Manufacturerの各項目に自分の名前が漢字で設定されています。
名前はVisual Studioのインストール時に入力したもので、エラーの内容はこれを変換することができないという事のようです。
 
試しに.infファイルの該当項目を消してみましたが、ビルド時に再生成されているようでエラーは解消せず。
.NETのセットアッププロジェクトだとプロジェクトのプロパティでこの辺の名前を設定できたのですが、CABプロジェクトだとどこで変更してよいのかわかりませんでした。
 
次にCABプロジェクトのフォルダにある.vddprojファイルを覗いてみるとManufacturerという項目にやはり自分の名前がセットされていました。
結果から言うとここを直せば良かったのですが、ただ直しただけではエラーは解消しませんでした。
.vddprojファイル修正後、Visual Studioを一度終了させることで無事コンパイルできるようになりました。
 

0 件のコメント: