Download presentation
Presentation is loading. Please wait.
1
Developer Tools – Visual C++ 2005/10~
インストーラを作る前に とっちゃん(高萩 俊行) Microsoft MVP Developer Tools – Visual C /10~
2
アジェンダ インストーラ開発における指針や注意点 MISAOがインストーラに与える特徴 午後のお知らせ
3
インストーラ開発における 指針や注意点
4
インストーラとは? アプリを起動できるようにするツールの総称 不要になったら簡単に削除できる手段を提供 容易な手段で更新できる手段を提供
指針と注意点 インストーラとは? アプリを起動できるようにするツールの総称 不要になったら簡単に削除できる手段を提供 容易な手段で更新できる手段を提供
5
Per Users か Per Machine か
指針や注意点 Per Users か Per Machine か 兼用インストーラにはしない Vista までと Win7 以降の両対応ができない 出来るかどうかとやるかどうかは別 製品の特長、用途、対象ユーザー層 一意に確定させる 明確にする アップデータの提供形態 .msp によるパッチ提供を行うか
6
インストーラ利用者の想定 利用環境の想定 誰がインストールするか? 製品利用者と一致するか? 会社のマシンか? 自宅のマシンか?
指針や注意点 インストーラ利用者の想定 誰がインストールするか? 製品利用者と一致するか? 利用環境の想定 会社のマシンか? 自宅のマシンか? 個人所有か? 共用利用か?
7
バージョン管理は厳密に行う ファイルバージョン管理に規約を設ける アセンブリバージョンとは分けて管理 指針と注意点
dllとexe のそれぞれに明確な規約を設ける 開発環境外に公開する時点でバージョンは固定 そこからの変更は次バージョンを原則とする アセンブリバージョンとは分けて管理 AssemblyVersion .NET アプリの厳密名用ローカルルール AssemblyFileVersion ファイルの新旧確認に使う基本情報 管理情報で最も厳格に扱われる
8
32bit と 64bit(アプリ) IA64対応の有無 .exe は Any CPU にしない
指針や注意点 32bit と 64bit(アプリ) IA64対応の有無 対応することは少ないがないとは言えない .exe は Any CPU にしない .dll は可能な限り Any CPU にする COM サーバーの場合は、Any CPU にしない COM(DLL)を参照するかを確認する 使う場合は、Any CPU にしない
9
AnyCPU な .exe で問題がない場合 インストーラは 32bit モードで作成 インストールチェックする場合はAPIを利用
指針と注意点 AnyCPU な .exe で問題がない場合 インストーラは 32bit モードで作成 インストールチェックする場合はAPIを利用 レジストリを参照しない HKLM\SOFTWARE\Wow6432Node
10
32bit と 64bit(インストーラ) パッケージ形式の確定 統合パッケージ 専用パッケージ .msi の定義情報はすべて32bit基準
指針と注意点 32bit と 64bit(インストーラ) パッケージ形式の確定 32/64 統合パッケージ 32/64 専用パッケージ 統合パッケージ 環境を見て適切なコンポーネントを導入 VersionNT64 プロパティなどで確認 専用パッケージ 環境ごとにそれぞれ別のものとして用意 .msi の定義情報はすべて32bit基準 64bitは専用の情報を参照
11
UNICODE文字 WiXのExtensionはUNICODE 非対応 Windows Installer 自身は対応
指針と注意点 UNICODE文字 WiXのExtensionはUNICODE 非対応 Windows Installer 自身は対応 OS的に UNICODE Ready OS的に ANSI Only .msi ファイルフォーマットの仕様
12
SystemFolder, WindowsFolder にインストールしない
指針と注意点 SystemFolder, WindowsFolder にインストールしない MS製モジュール以外はインストールしない FontsFolder を除く 常に Isolated Install を検討 すべてのモジュールをローカルインストール COM も Isolated Install モードを検討 関連付けなどのシステム設定は除く
13
Feature(機能) 論理的集合としてのグルーピングの仕組み カスタムインストールの単位
指針と注意点 Feature(機能) 論理的集合としてのグルーピングの仕組み 階層はそのまま機能(Function)の細分化 依存性がある場合はサブ機能 依存性がない場合は同列機能 カスタムインストールの単位 Featureの増減はProductCodeを変更 .msp での提供はできない
14
Component(コンポーネント) コンポーネントのルールに従う 指針と注意点 同一パスは同一コンポーネント
ComponentId を一致させる 製品間でも一致させる ComponentIdが違う場合はKeyPathを変える 同一コンポーネントはバージョン互換にする CompnentId が同じ複数の製品の場合 同じ情報を保持する(増減がない) MSI 4.5 の共有コンポーネントは利用しない ショートカットごとにコンポーネントは1つ 同名ショートカットで複数存在させない
15
Componentのベストプラクティス 実行可能ファイル(exe/dll)は1つだけ キーパスを必ず設定 ヘルプファイルも単一コンポーネント
指針と注意点 Componentのベストプラクティス 実行可能ファイル(exe/dll)は1つだけ キーパスを必ず設定 原則としてバージョンを持つファイルを対象 ヘルプファイルも単一コンポーネント インデックスファイルは同じコンポーネント レジストリだけの場合は検討しなおす キーパスはキー名および値名を固定させる
16
Component のベストプラクティス CommonFilesFolder システムフォルダ 指針と注意点 共有ファイルとする
App Paths を使えるNativeモジュール システムフォルダ 永続とはしない(ICE違反だがやらないこと)
17
極力自前コードを実行しない 自己登録は事前抽出 標準の仕組み以外のみ 作成ツールの拡張機能を積極利用 指針と注意点
可変情報はプロパティを使う 標準の仕組み以外のみ シリアル番号チェック 特殊なアプリ呼び出し 作成ツールの拡張機能を積極利用 WiXExtension IIS/SQL Server/VSなどなど ISにも同様の機能がある
18
WiX の2パスコンパイルを積極利用 場合分けをうまく活用する .wixproj をカスタマイズする 製品固有情報、共有可能情報の分離
指針と注意点 WiX の2パスコンパイルを積極利用 場合分けをうまく活用する .wixproj をカスタマイズする 条件ビルドやブートストラッパー対応など 製品固有情報、共有可能情報の分離 Component ごとに1ファイルくらいの気持ち Feature は製品固有
19
プレースフォルダの積極利用 Component 情報から固有値を除外 指針と注意点
<Directory Id="TARGETDIR"> <Directory Id="ProgramFilesFolder" Source="Programs"> <Directory Id=“App" Name=“App"> <Directory Id="INSTALLFOLDER"/> </Directory> </Directory> </Directory> とすることで、製品固有値を消す
20
WiXのソースはDLしておく Extensionを利用する場合はほぼ必須 指針と注意点 カスタマイズ 参考資料
Src\ext フォルダは必ず展開しておく
21
MISAOがインストーラに 与える特徴
22
Addin 機構を使った拡張機能 設定ファイルをEXEと同じ場所に書く VB10(.NET 4)で作成 Windows 7 のみ対応
インストーラに与える特徴 Addin 機構を使った拡張機能 カスタムインストール アドインインストーラ 設定ファイルをEXEと同じ場所に書く フォルダごとコピーで複数設定を用意可能 Per Users インストーラしか作れない VB10(.NET 4)で作成 Client Profile では動かない(Twitter) Windows 7 のみ対応
23
午後のおしらせ
24
午後のお知らせ MISAO 以外のインストーラ作成もあり 自分で作ることを重視 差分利用可能な作り方 変更に対する柔軟性を維持した作り方
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.