今回はちょっと?かなり??マイナーな情報かもしれませんがVC++のインストーラ作成についてお話ししたいと思います。
先日、VC++6.0⇒VC++2015へバージョンアップし、いざ!インストーラを作成して・・・ってところでハマった話。
昔ながらのセットアッププロジェクト(昔はディストリビューションウィザードかな?)を作成してショートカットを追加してと。
あっランタイムも必要なので必須コンポーネントをチェックして。よし!ビルドしよう。
ってあれっ?ビルドに失敗している。。。
ビルド結果を見ると、なにやらC++2015ランタイムのインストーラが存在しないためNGになっている様子。
それならと思い早速マイクロソフトへGo。
これこれ。今回は32ビット版が欲しいので「vc_redist.x86.exe」をダウンロード。
対象フォルダ「C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\vcredist_x86」へインストーラをコピーして、あらためてリビルド。あれ?同じエラーが。
良くみると「C++ "14" Runtime Libraries (x86)' のファイル 'vcredist_x86\vcredist_x86.exe' をローカル コンピューターにダウンロードする必要があります。」
あっファイル名が違う!なるほどなるほど。リネームしてリビルド。
ビルドに成功したものの、警告が2つ増えた。。。仕方ないので1つずつ解決することに。
まず、1行目の警告。
「カルチャ 'ja-JP' を項目 'Visual C++ "14" Runtime Libraries (x86)' に対して一致できませんでした。カルチャ 'en' を使用します。」
「カルチャ 'ja-JP' を項目 'Visual C++ "14" Runtime Libraries (x86)' に対して一致できませんでした。カルチャ 'en' を使用します。」
どうやら日本語用のカルチャを用意しないといけないとのこと。
先ほどインストーラをコピーしたフォルダを確認すると・・・
英語カルチャしかない!ので英語カルチャ「en」をコピー⇒「jp」にフォルダをリネーム。
フォルダ内の「package.xml」を開き、「Culture」を"ja"に修正。
これでOKかなとリビルド。
警告が1つ消えたものの、もう1つは残ったまま。
なので、2つ目の警告。
「'Visual C++ "14" Runtime Libraries (x86)' 内の 'PublicKey' 属性の値は
「'Visual C++ "14" Runtime Libraries (x86)' 内の 'PublicKey' 属性の値は
ファイル 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\vcredist_x86\vcredist_x86.exe' の値と一致しません。」
どうやらインストーラの公開キーが一致しないとのこと。
再度、先ほどインストーラをコピーしたフォルダの「product.xml」を開くと・・・
今回ダウンロードしたインストーラの公開キーを確認。
インストーラを右クリックプロパティ⇒「デジタル署名タブ」の「sha1」の詳細⇒証明書の表示⇒「詳細タブ」の公開キーをクリックすると
結果!エラーも警告もなく、インストーラ作成に成功しましたとさ。めでたしめでたし。
0 件のコメント:
コメントを投稿