Menu

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.exeをXP互換モードで起動してみてください互換モードの切り替えはファイルのプロパティ画面エクスプローラでファイルを右クリックしプロパティを選択で設定します

[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

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.