とっちゃん Microsoft MVP for Windows-SDK Oct 2005 – Sep 2007

Slides:



Advertisements
Similar presentations
プラグイン作成講座 Control System Studio 3.0 Takashi Nakamoto
Advertisements

主専攻実験 第1回 ガイダンス資料 TA : 野坂 龍佑 (M2), 高林大輔 (M1)
わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
SSP in a Nutshell #1.5 最近の新機能よせあつめ
Rubyでニコニコをごにょごにょ MH35.
エンティティ・リレーションシップ・モデル
Visual Studio 2010 の新機能 Coded UI Test
IIS 4.0で開発をするコツ Webアプリケーション構築.
Developer Tools – Visual C /10~
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
PROCESS 14:一般情報(2) InstallShieldLecture
NetBSD以外でpkgsrcを使うZoularis
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
DotNetNukeについて ㈱BSC 川神 彰(ゴッドリバー).
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
数式処理ソフトウェア のご紹介 株式会社ライトストーン 高橋 直生.
オレポータビリティ 日本Rubyの会 青木 峰郎.
Ubuntu 7.10の紹介 Ubuntu Japanese Team あわしろいくや
WebDAVでOpenOffice.org の文章を共有する
LibreOffice基礎の基礎 あわしろいくや LibreOffice Japanese Team 関西LibreOffice勉強会
表紙 Windows用起動画面集        ~劇場版 v.1,00~ 作成:カズキング 場所:ブログ「俺らしいブログ」
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
ケータイキット for Smarty のご紹介
Microsoft Office Web Apps の基礎と活用
Microsoft Office 2010 クイックガイド ~ファイルの互換性編~
バージョン管理超入門 まだファイルコピーしてます?
小型デバイスからのデータアクセス 情報処理系論 第5回.
MSBuild 色々出来るよ 2011/04/02 お だ.
共同ローカリゼーション フレームワーク 井上 謙次.
MS製開発ツールの歴史とか….
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
サーバー立ち上げ記 2009/5/23
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Androidアプリの作成 07A1069 松永大樹.
初めてのTSF 囚人.
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Office IME 2010 を使う.
ウイルスについて I98N044 久野耕介 I98N114 藤田和久
Windows Azure (CTP) 触ってみた
Microsoft MVP for Development Tools – Visual C++
Microsoft Visual Studio 2005 Tools for
Microsoft MVP for Development Tools – Visual C++
Microsoft BizTalk Server & SAP PP モジュール 連携検証レポート概要
COM コンポーネント・オブジェクト・モデル.
初めてのTSF 囚人.
Windows Azure (CTP) 触ってみた
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
Microsoft MVP for Development Tools – Visual C++
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
すべて読む Microsoft SharePoint ニュース
SQL Server 2008 および 更新プログラムの一括セットアップ
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
Microsoft SharePoint Online の Web サイトを カスタマイズする方法
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
Microsoft Office 2010 クイックガイド ~ファイルの互換性編~
データベース第3回目 意味ごとにテーブルを分ける
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
P2P & JXTA Memo For Beginners
7-Zipのインストール (Windows 10)
Presentation transcript:

とっちゃん Microsoft MVP for Windows-SDK Oct 2005 – Sep 2007 Windows Installer 概要 とっちゃん Microsoft MVP for Windows-SDK Oct 2005 – Sep 2007 自己紹介をここでするべしw

Windowsにおけるインストーラの役割の変遷 今のご時勢に求められるもの 従来のインストーラとの違い アジェンダ そもそもインストーラって? Windowsにおけるインストーラの役割の変遷 今のご時勢に求められるもの 従来のインストーラとの違い Windows Installer のメリットとデメリット Windows Installer の構造 今日のアジェンダです。 ま、こんなことやりますw インストーラ開発に携わったことがある人を聞くべし!

で?結局何なの? そもそもインストーラって? まずは語源を調べてみました研究社 新英和中辞典 第6版(Exciteの辞書)より Install(動詞) (役職者を)就任させる、(職に)任命する (席、場所に)着ける、落ち着かせる (装置などを)取り付ける(据え付ける) Installation(名詞) (人の)就任,任命式,任官式 (装置の)据え付け,取り付け,架設 軍事施設,基地 Deploy(動詞) (部隊・兵力などを)展開する,配置する (部隊・兵力などが)展開される,配置される Deployment (deployの名詞形) (部隊・兵力などの)展開、配置 Setup(名詞) (組織などの)機構,仕組み,構成 (機械などの)組み立て,装置,装備 で?結局何なの? まずは語源を調べてみました。 単語を一つずつ列挙 全部オリジナルは軍事用語としても使われていることに注目w 次に訳が出る 自分なりの答え… 製品を実行可能にするべく、ファイル(やレジストリ)を設置するものである。

Windowsにおけるインストーラの役割の変遷 ~Windows 3.x アプリケーションを動かせるようにするのが仕事! 消したい? 要らない!? ばっさりやってくれw Windows 4.x 動けばいいとはいえないよ! 立つ鳥後を濁さずって知ってる? Windows 5.x~ OSで面倒見ます。だからちゃんと対応してください。 お願いしますm(_ _)m WindowsInstallerに対応してください。 ~3.x は、Win16 版および、3.51 までの Win32 版 4.x は、95/98/SE/NT4、要するにWindowsInstaller 前 5.x は、ME/2000/XP/Vista/2003 搭載マシン。

ここから本題です 安心して使える仕組み 他と共存できる仕組み 使いたいときに使える仕組み ユーザーのミスをフォローしてくれる仕組み 今のご時勢に求められるもの 安心して使える仕組み 他と共存できる仕組み 使いたいときに使える仕組み ユーザーのミスをフォローしてくれる仕組み ここから本題です 安心して使える=セキュアである 共存できる=DLL Hellなどが発生しない 使いたいときに=アドバタイズ フォロー=自動修復

従来のインストーラとの違い 従来型 Windows Installer 仕組み プログラム データベース 内部仕様 独自形式 公開データベース形式 動作ロジック 単一プロセス クライアント/サーバー 配布形式 実行可能ファイル MSIファイル OSによるサポート なし あり ロールバック 権限昇格 自動修復 実装不可能 アドバタイズ 共有管理 共通カウンタ コンポーネント管理 Designed for Windows ロゴ 可 推奨 Certified for Windows ロゴ 不可 必須 従来型は基本的にInstallShield のこと

WindowsInsatller のメリットとデメリット 決まったファイル形式で提供されている コードを書かなくてもよい ロールバック可能なインストールシステム OSによるサポート データ管理の一元化 自動修復 アドバタイズインストール RestartManager その他 Certified for Windows ロゴが取得可能 デメリット 作法がうるさい 日本語版ツールが高い(ローカライズされたものだけ) 日本語資料が少ない がない

OS によるサポートのデモ デモは、RestartManager は絶対にやる。 自動修復は、インストールしてから、削除すればいいので簡単でしょう。 アドバタイズはインストーラを作らないといけないよね。

ファイルの種類 配布ファイル その他 Windows Installer の構造 msi(インストールデータベース) msp(パッチデータベース) mst(トランスレーションデータベース) msm(マージモジュール) その他 idt(インストールデータテーブルエクスポートファイル) pcp(パッチ作成データベース) cub(データベース検証データファイル)

データベースである(RDB) ファイル形式は、OLE複合文書形式 OS非依存 作成も実行もデータアクセス 構成データと実行ロジックに分かれる Windows Installer の構造 データベースである(RDB) ファイル形式は、OLE複合文書形式 OS非依存 作成も実行もデータアクセス 構成データと実行ロジックに分かれる

シーケンス(順次実行)で管理 UIと実行のフェーズに分かれる 製品にはあまり依存しない 実行ロジック 一方通行で動作 戻る動作はない 役割が明確 UIモードではマシンへの変更は不可 製品にはあまり依存しない 簡単なほうの実行ロジックを紹介。 シーケンスは、3種類の動作と、2つのモードを持つ。 ついでにダイアログのテーブルを表示するw 最後に、実行ロジックは製品にはあまり依存しないということをお知らせして終わりw

複数のテーブルで構成 リレーションで管理 論理階層が存在する 構成データ 左、Core Tables 右、File Tables 入らないのでレジストリは省略w

管理データの論理階層 ここは、さくっと飛ばすw 構成としては4階層になっているということをお知らせして終わり

製品識別コード アップグレードコード ProductName プロパティ ProductCode プロパティ 製品名 ProductCode プロパティ 追加と削除の単位 ProductVersion プロパティ 製品バージョン PackageCode サマリーデータ ファイルそのものの識別子 アップグレードコード 新旧バージョンのグループ化のための情報

製品の機能的特徴の集合 カスタムインストールの単位 階層表現が可能 階層化は、機能の細分化 Feature(機能) 機能的特徴は、製品としての単位である。

Windows Installer の中核管理データ 最小インストール管理単位として存在 Component Windows Installer の中核管理データ 最小インストール管理単位として存在 インストーラの作成の主軸であり実行ロジック以外の全てはこの情報に集約される 同じ情報(ファイル/レジストリ)を同じ場所にインストールする場合、製品が異なっていても同じ識別子を与えなければならない。 同じファイルでも違う場所にインストールする場合、(本当は)別の識別子を与えなければならない ただし、ユーザーには見えない存在

Windows Installer の識別子 全ての外部識別子はGUIDで管理 ProductCode PackageCode UpgradeCode ComponentId 内部識別子は名前で管理

製品設計段階から、インストーラの設計も行なうべし! Component は不変でなければならない! インストーラ開発時の注意点 製品設計前にガイドラインに目を通せ! 製品設計段階から、インストーラの設計も行なうべし! Component は不変でなければならない! 迷ったときは、Designed for Windows ロゴに当たれ!

Windows Installer のバージョンアップの種類 mspを使った更新 SmallUpdate MinorUpdate msiを使った更新 SmallUpgrade MinorUpgrade MajorUpgrade バージョンアップの手段は2種類5パターン ここは、名前の紹介だけ。

msp による MajorUpdate は存在しない 通常は市販製品のマイナーバージョンアップ インストール環境でのみ実現可能 msp による MajorUpdate は存在しない 通常は市販製品のマイナーバージョンアップ

Upgrade msi による更新 インストールされていない場合も実行可能 全ての更新パターンを提供 オンラインソフトのアップデートに多い

UpgradeCode の変更は別製品である 更新タイプによる違いと管理コード Small 小さな修正 Ex) FQE PackageCode の変更 Minor マイナーバージョンアップ Ex) SP1, SP2 ProductVersion, PackageCode の変更 Major 新バージョン Ex) Office XP と Office 2003 ProductCode, ProductVersion, PackageCode の変更 UpgradeCode の変更は別製品である Smallは、FQEのレベル。 基本的には、一部のファイルの更新とか、そういうアップデート Minor はいわゆるマイナーバージョンアップ いろいろと手が入っているが、メジャーバージョンアップというほどではないもの。 単一の製品寿命中の更新は通常これ。 Major はメジャーバージョンアップ 単一の製品としてみれば、別製品となるもの メジャーバージョンアップはすなわち古い製品のライフサイクルの終焉を意味する。 ただし、アップグレードコードが同じ場合のみをさすという点が重要。

ツールの紹介 InstallShield InstallShield Express Visual Studio 良くも悪くも標準 大規模インストーラが作成可能 http://www.networld.co.jp/is/is12/overview.htm InstallShield Express 機能限定版のため出来ないことがある 小規模な製品向け http://www.networld.co.jp/is/is12/express/overview.htm Visual Studio 開発環境に添付 インストーラとしてできることが非常に限られている フリーソフト/社内ツール向け Windows Installer XML (WiX) toolset MS製OpenSource 英語版しかない(ツールのみ) WindowsInstaller の機能をストレートに表現する コーディングによる開発スタイルをとる http://wix.sourceforge.net/ ORCA(Windows Installer SDK) マシン語ハードコーディングと同じスキルが必要 編集サポートツールであって、インストーラ作成には向かない その他市販品 日本語化が止まったまま… 日本語版でも、サポートは英語… ここからはいろいろ紹介します。 まずは、ツール。 VSについては、インストーラとしてはしょぼしょぼであることも謳うw 個人的にはというのはあえて出さない。

Windows Installer Best Practice Windows Installer Team Blog にて公開 将来 White-Paper が約束されている SDK のガイドラインとは違う視点 開発を行う上でのさまざまな指針が満載 日本語(参考訳)は、おいらのブログに

技術情報(Part.1) WEBサイト(英語) WEBサイト(日本語) Windows Insatller SDK http://windowssdk.msdn.microsoft.com/en-us/library/ms710796.aspx http://msdn.microsoft.com/library/en-us/msi/setup/windows_installer_start_page.asp Role-based Guide to Windows Installer Documentation http://windowssdk.msdn.microsoft.com/en-us/library/aa371367.aspx InstallSite http://www.installsite.org/ WEBサイト(日本語) Designed for Windows ロゴガイド http://www.microsoft.com/japan/winlogo/default.mspx DOBON.NET http://dobon.net/vb/dotnet/index.html#deployment

技術情報(Part.2) Blog コミュニティ(日本語) Windows Installer Team Blog http://blogs.msdn.com/windows_installer_team/ Windows Installer Best Practice http://blogs.msdn.com/windows_installer_team/archive/category/10860.aspx (原文) http://blogs.wankuma.com/tocchann/category/482.aspx (参考訳) 社本@ワック Blog http://www.ailight.jp/blog/sha256/ とっちゃん’s Blog http://blogs.wankuma.com/tocchann/ http://tocchan.cocolog-nifty.com/blog/ (旧館) コミュニティ(日本語) Windows Installer/WiX/InstallShield メーリングリスト http://www.freeml.com/ctrl/html/MLInfoForm/msi@freeml.com InstallShield ユーザ ML http://groups.yahoo.co.jp/group/is-user/ MSDN フォーラム http://forums.microsoft.com/msdn-ja/default.aspx?SiteID=7

引き続き、わんくま同盟 東京勉強会 #2 を お楽しみくださいw なにかご質問はありますか? 引き続き、わんくま同盟 東京勉強会 #2 を お楽しみくださいw