Installer

develop (84)
novice123

仕様検討>Installer

インストーラ

インストーラ作成スクリプト: sakura_UAC.iss

インストーラの作成には,"Inno Setup 5" が必要です.

使い方

以下のようにフォルダを配置します.(dirは任意のフォルダ)

dir/::
sakura_UAC.iss
dir/instmaterials/::
添付の instmaterials.zip の中身を置く.
インストーラで表示する画像ファイルが入っています.
dir/sakura/::
エディタ本体,マクロなど,インストーラに含めるファイルを格納する.
対象ファイルは,インストーラ中に明記してある.

(環境別のマニフェストファイルは添付の manifests.zip に入っています)
dir/sakura/Keyword::
キーワードファイル.このフォルダの中にある物は無条件でインストーラに含められる.

20行目付近にある

  ; エディタのバージョンに応じて書き換える場所
  OutputBaseFilename=sinst1-6-6-0
  VersionInfoVersion=1.6.6.0

の部分をリリースするバージョンに書き換え,sakura_UAC.iss を開いてコンパイル,
あるいは右クリックして,"Compile..." で直接コンパイルもできます.

できあがったファイルは dir/Output/ に格納されます.

仕様

これまでのインストーラと異なる点

Admininstratorか一般ユーザかで振る舞いが異なります

一般ユーザの場合

  • デフォルトのインストール先が個人プロファイルのディレクトリになります
  • 関連づけをHK CURRENT USER配下へ行います

ユーザ設定の保存場所

マルチユーザ設定画面を新設しました.

Administrator かつ Vista の場合はマルチユーザ ONが初期設定になります.

インストーラでOFFにすると設定が保存できない旨の警告を出します.

マルチユーザ設定の3つのラジオボタンは意味を持ちません.今のところ単なる飾りです.

Test2でラジオボタンは削除しました.

ショートカット

マルチユーザONの場合,スタートメニューに設定フォルダを開くショートカットが追加されます.

ショートカット自体が環境変数を参照するため,

他のユーザでも各自のフォルダが開かれます.

「サクラエディタを開く」

インストーラの最後で「サクラエディタを開く」を実行すると管理者権限で実行されるため,

インストーラが管理者権限で動いているときは最後の実行チェックボックスを出さないようにしました.

Test2追加の仕様

sakura.exeが存在する場合

インストール先として指定された場所にsakura.exeが存在する場合はsakura.exe.iniの内容を確認の上,現在使われているマルチユーザ設定をそのまま引き継ぎます.インストール中の問い合わせは行いません.

インストーラレベルではsakura.iniの保管場所変更は行えないことになります.

manifestの使い分け(XP用, Vista用)

Vista用manifestはマルチユーザONの場合のみ適用します.なぜなら,既にvirtual storeにデータが入っている可能性があるので勝手に無効にすると過去の設定が読み出せなくなるためです.

Vistaで設定ファイルを実行ディレクトリと同一フォルダへ保存する設定にした場合は,保存できないかもしれない警告の代わりに,VirtualStore機能によって他のアプリケーションとの不一致が生じることがある旨に警告内容を変更しました.

準備完了画面へのマルチユーザモードの追加

設定保存場所(マルチユーザかどうか)とVirtualStore機能(Vistaのみ)をインストール開始前の確認画面に含めるようにしました.

バグ修正

スタートメニューの作成を行わない場合でも,設定ファイルフォルダへのショートカットが作成されていたのを修正.

Test3追加の仕様

「プログラムから開く」

「プログラムから開く」の候補にサクラエディタが出るようにした.Windows Vistaへユーザ権限でインストールした場合,右クリックの「プログラムから開く」の候補には現れない.しかし,関連づけのないファイルをダブルクリックして「一覧からプログラムを選択する」を選択したときは候補として現れる.前者で現れないのはVistaでの仕様変更なのかどうか不明.

正規表現ライブラリ

BREGEXP.DLLからbregonig.dllに変更.

Test4追加の仕様

関連づけツール (sakuext)

Vistaでの権限昇格およびsakuextのsakura.ini参照とマルチユーザモードとの整合性を取るため,wrapperを導入.

従来のsakuext.exeはsakuext_body.exeに改名し,sakuext.exeという名前でwrapperプログラムを追加.また,wrapperプログラムが管理者権限で動作するようにsakuext.exe.manifestも追加している.

ヘルプへのショートカット修正 (Startメニュー)

ヘルプファイルのHTMLヘルプへの変更の際に,ヘルプファイルへのショートカットを修正し忘れていた.

Test5追加の仕様

関連づけツール (sakuext)

sakuext.exe.manifestを外部に置くと,manifest設置前にexeが実行されていた場合にmanifestファイルが読み込まれないため,マニフェストをsakuext.exeへ埋め込んだ.

sakura.exe単体ダウンロードへのサンプル追加案

Vistaでマニフェストが適用されない場合の対処方法の記述を追加しました。(2007.6.9 ryoji)

単体ダウンロードのほうには設定サンプルを追加したらいいんじゃないかと思いますが、どうでしょう。

以下、それにつける説明文(samples.txt)を想定した文章です。

●サンプルファイル

    sakura.exe.ini.sample       マルチユーザー構成設定ファイル
    sakura.exe.manifest.xp      ビジュアルスタイル設定マニフェスト
    sakura.exe.manifest.vista   ビジュアルスタイル&仮想化無効設定マニフェスト

●ユーザー別の設定にするには

サクラエディタは、従来、エディタ本体(sakura.exe)と同じフォルダに設定
sakura.ini)を保存していました。
現在のサクラエディタでは、マルチユーザー構成設定ファイル(sakura.exe.ini)をエ
ディタ本体と同じフォルダに置くことで、設定をWindowsのログオンユーザー別のフォ
ルダに保存することができるようになっています。
マルチユーザー構成設定のサンプルファイル(sakura.exe.ini.sample)を編集して
MultiUserの部分を「MultiUser=1」に書き換え、ファイル名変更して使ってください。

[sakura.exe.ini.sample  sakura.exe.ini]

詳細な設定の記述方法はサンプルファイルにコメントとして記載されています。
ユーザー別設定が反映されると、サクラエディタで共通設定/タイプ別設定の画面を出
したときに[OK]ボタンの左側に[設定フォルダ]ボタンが表示されるようになります。

OSに適合した動作にするには

マニフェストファイル(sakura.exe.manifest)をエディタ本体と同じフォルダに置く
と、外観や挙動をOSに適合させることができます。
マニフェストのサンプルファイルをファイル名変更して使ってください。
内容の編集は不要です。

Vistaではマニフェストファイルを置いただけではすぐには適用されない場合があるようです。そういう場合は、一度だけsakura.exeXP互換モードで起動してみてください。互換モードの切り替えはファイルのプロパティ画面(エクスプローラでファイルを右クリックし「プロパティ」を選択)で設定します。

[sakura.exe.manifest.xp  sakura.exe.manifest]

サクラエディタの外観をWindows XP以降のOSのビジュアルスタイルにするにはこちら
を使います。

[sakura.exe.manifest.vista  sakua.exe.manifest]

Windows Vistaでサクラエディタに適用される仮想化(*1)を無効にするにはこちらを使
います。こちらでは同時にビジュアルスタイルも適用されます。
仮想化を無効にする場合は、次の注意事項に従ってください。

***** 仮想化を無効にする場合の注意事項 **************************************

Program Filesにインストールして使用する場合は仮想化を無効にするとともに必ずユ
ーザー別設定も適用し、設定がユーザー別設定フォルダに保存されるようにしてくだ
さい。その際、マルチユーザー構成設定ファイル(sakura.exe.ini)の編集は
Program Files以外の非保護フォルダで行い、編集後のファイルをエクスプローラでコ
ピーしてください。

既に、ユーザー別設定を適用せずにProgram Filesにインストールして使用している場
合はインストール先フォルダ下の設定ファイルやその他のファイルがVirtual Store
に転送されている可能性があります(*1)。エクスプローラで確認して転送ファイルの
ほうを優先的にユーザー別設定フォルダにコピーしてください(*2)

Program Filesではなく、保護対象外のフォルダにインストールして使用する場合はユ
ーザー別設定にする必要はありません。

*****************************************************************************

(*1) アプリケーションに適用される仮想化/Virtual Storeとは

Program FilesフォルダやWindowsフォルダ配下に設定を保存するようなVista未対応の
アプリが、Vista上では急に動かなくなってしまうことが無いように設けられた互換性
維持機能です。
Vista未対応アプリは仮想化有効で動作します。仮想化有効のアプリがProgram Files
のように保護強化されたフォルダにファイルを保存しようとすると、目的のフォルダ
ではなくVirtual Storeと呼ばれる別のフォルダにファイルが保存され、以後、同じフ
ァイルを開こうとしたときにはVirtual Store側にあるファイルが開かれる仕組みにな
っています。
仮想化有効のままでアプリを使用していると、そのアプリで保護フォルダのファイル
を操作したときに次のような混乱が起きます。

・新規保存したはずなのにエクスプローラで見るとファイルが見つからない

・上書き保存したのにメモ帳で見ると内容が更新されていない

・エクスプローラでファイルを上書きしたのに開いてみると更新されていない

アプリに適用される仮想化を無効にすれば、保護フォルダへの書き込みは通常通り拒否
され、保護フォルダのファイルを開こうとしてVirtual Store側のファイルが開かされ
ることもないので、上記のような混乱も起きなくなります。

(*2) Virtual Storeに転送されたファイルの確認方法

フォルダの仮想化されたファイル(Virtual Storeに転送されたファイル)を表示するに
はエクスプローラのツールバーに表示される [互換性ファイル]ボタンをクリックします。
[互換性ファイル]ボタンは、そのフォルダに仮想化されたファイルがある場合にのみ表
示されます。

Related

Wiki: DesignReview
Wiki: Home
Wiki: Release
Wiki: WikiStart