プログラム

125件の投稿

WiX Toolset ー 開発環境

そもそもWiXで何をしようとしているのか。

メインの作業は、開発したソフトをユーザコンピュータにインストールするためのコード(プログラム)を書くことです。
このコードは、Widows Installer XMLの仕様に従ったXML形式で書かれます、作業ファイルの拡張子はwxsと決まっています。

これをコンパイルしてmsiファイルを作り、ユーザに配布、ユーザはこれを実行することでターゲットコンピュータにアプリケーションをインストールします。

msiファイルは実は、Accessのようなデータベースで、これをテキストエディタでみることはできませんが、Orcaというソフトてテーブル形式のデータを見ることができます。

msiファイルに動作命令は含まれていません。msiファイルを見てインストール作業をするのはWindows Installerで、これはWindowsにはあらかじめインストールされています。(必要であれば新しいWindows Installerをインストールします)

wxsファイルは テキストエディタでみることができますし、
XML NotePad等のXMLエディタや、Visual Studio(以下、VSと書きます)で開いて編集することができます。

しかし、wxsプログラムを手作業でコーディングするのは初心者にはきつい仕事ですので、統合開発環境IDEが欲しいところですが、
手ごろなIDEがありません。WiX EditというIDEは無償でそこそこ使えます。

ただし、WiX Toolset最新バージョンは3.9ですが、WiX Editは現在までのところ、Wix3.7までしかサポートしていませんので、
WiX EditではWix3.9を設定しますが、できるところまでやって、あとはVSを使って処理するといいです。

VSはグラフィカクな操作はできませんが、WiX 用のインテリセンス(自動補完システム)が動作しますので、コーディングには役に立ちます。

さて、これからWiXのコーディングに入っていきますが、その前にWiX Editの設定を変更しましょう。
WiXのバージョンとXMLエディタの変更です。

WiX Editを起動し、ToolタブのOptionsを選択、クリックしますと、以下の画面がでます。

External Xml Editorは最初Notepadに、またWiX Binaries DirectoryはWix Edit付属のバージョンになっていますので、External Xml Editorは例えば秀丸に、WiX Binaries Directoryは、最新の3.9をインストールして変更してください。wxsを本格的に編集するのはVSがいいと思いますが、チョコチョコとコードを確認するのには、軽い秀丸を使うと便利です。WixEditのメイン画面>ToolからLaunch External Editorを起動すると、作業中のwxsを(上の例では)秀丸で表示できます。

編集結果はWiX Editのグラフィカル画面に反映されます。

次にVisula Studio(VS)を見ます。VSに正しくWiX Toolsetがインストールされていれば、VSの「新しいプロジェクト」をクリックすると 、下の画面が出てきます。

WiX EditでもVSでもプロジェクトを作成し保存するとデフォルトではproduct.wxsが作成されます。同じproduct.wxsを両方で開いているとき、片方で修正すると他方がそれを察知して、再読み込みを促します。要するに両ソフトで同期がとれます。

WiX Editではなんといっても視覚的に作業が確認ができるのが長所だし、VSは細かい編集ができるのが長所ですから、両方をうまく使って作業をすすめることがベストチョイスだと思います。

Windows Installer XML Toolset (WiX Toolset)

Windows環境でプログラム開発をすると、次にはユーザがそのプログラムを利用できるようにしなければいけません。

最近、マイクロソフトはこの問題に対して、「クラウドコンピューティング」という新しい提案をしています。「クラウドコンピューティング」では、ユーザに対するソフトウェア・サービスをすべてインターネットを介して提供するというものです。

すなわち、開発したアプリケーションソフトをユーザのコンピュータにインストールするのではなく、インターネット上のサーバーコンピュータにインストールして、ユーザはこのサーバーにアクセスして、プログラムを使います。

この考え方には長所がありますが、ソフト提供者からすれば負担が大きいので、あらゆるソフトがこのシステムを利用するには、まだ時間が必要だと思います。

一方従来型のコンピュータソフト利用形態「オンプレミス」では、ユーザはソフトをすべて自分のコンピュータにインストールしなければいけません。

これはこれで面倒ですが、「クラウド」がその地位を確保するまでは、まだまだ需要は大きいと思います。

前置きはこれくらいにして、オンプレミス環境下で、開発したソフトをどのようにユーザ環境にインストールするか。

このブログでも何度か取り上げましたが、インストールのための専用プログラムが必要です。

専用ソフトとして有名なのはInstallShieldで、そのほかにもいくつかあって、私はInstallAwareというソフトを使っています。

ただし、これらのソフトは高価で、更に始末が悪いことには頻繁に有料バージョンアップするので、ちょこちょこっとインストール・プログラムを作成したい人は、もっと安直な手段はないものかと考えます。

これまでマイクロソフトは、Visual Studioでセットアッププロジェクトを作成できるようにして、簡易なセットアッププログラムは、これを使って作成することができましたが、VS2012からはこれがなくなり、InstallShieldの簡易版を使うようになっています。ただし、これは今一つ機能的に不満があります。

マイクロソフトは、Windows Installer XML Toolset(WiX Toolset)を無料で公開しました。私もWIXを使いたいとずっと思ってきたし、このブログでも「マスターします」と宣言したのに、いまだに実現していません。

今回はなんとしても、ものにしたいと思っています。ただし、WiXのすべてを理解しようとは思っていなくて、自分にとって必要な部分まで理解すれば「よし」としたいと思います。

目標は次の通りです。

1. 開発したアプリケーションを過不足なくユーザコンピュータにインストール/アンインストールする
2. インストールの途中でシリアル番号の入力を求め、その成否をチェックする(シリアル番号生成のアルゴリズムを決定する)
3. プログラムが動作する環境がターゲットコンピュータに整っているかどうか調べ、もしなければ自動的に不足ソフトをインストールする

WiXの習得を難しくしているのは、日本語のよい参考文献がないことです。私が拠り所とするのは、次のものです。多分これで何とかなるとおもいます。

1. 「CodeZine」 「WiXではじめるWindows Installer作成入門」(WEB 2006年 日本語)
2. 「WiX チュートリアル (日本語訳)」(WEB 2011年 日本語)
3. 「WiX 3.6:A Developer’s Guide to Windows Install XML」(単行本 PACKT 2012年 英語)
4. 「WiX-users — General discussion about the WiX toolset」(Wix-user メーリングリスト 英語)

 

 

 

WiXのすべてをご案内できませんが、私自身がつっかえた、がなんとか理解したポイントを中心にご紹介していきたいと思います。

そして、実務で使えるレベルになればと思います。

次のテスト環境を使います。

1. WiX Toolset V3.9
2. WiX Edit V0.7.5
3. Visual Studio Premium 2012

Visual Studioインストール後に、WiX Toolsetをインストールすれば、VIsual Studioの中でWixプロジェクトが作成できます。

Visual Studioは無料のVisual Studio Express(Visual Studio Community )に、WiX Toolsetを組み込むことができると思いますが、テストしていません。

サーバーの移行を完了しました

ブログを長らくお休みしています。

これまで使用していたサーバーが古くなり、
アパッチやPHPやCMSの更新ができなくなっていましたので、
新しいサーバーに移行しました。

作業は主に新しいWordpressとJoomlaへの移行作業です。

ブログWordpressのデザインは基本的に同じものを使っています。
かっこいいデザインがあれば、変更したいと思います。

母屋のCMSはJoomlaの新しいバージョンに変えました。
内容はあまり変更しなかったのですが、
実情にあわせて、修正・変更したいと思います。

 

話は変わりますが、YouTubeに「日韓併合の歌」という動画がアップされています。
この動画は日本人女性が日韓併合について英語で歌っています。

動画は多少えげつないのですが、内容は至ってまともで、
多くの人が日韓併合に関連して議論しています。

私も投稿の衝動にかられて、発言しています。
議論の白熱化が予想されます。

HP Pavilion 500-240jp

23日ヒューレット・パッカードPavilion 500-240jp(CPU i7、メインメモリー 8GB、HDD 1TB、21.5インチ・モニター付き)が届きました。部品がなくて配達が遅れると聞いていましたが、予定より早く1週間弱で 届きました。(ご丁寧に本体のフロントパネルに「MADE IN TOKYO」というラベルが貼ってあります。)

早速電源をいれ、Winows 8の設定をしました。
簡単な作業でした。

おまけの21.5インチ・モニターもLEDだし、その他の性能も価格も満足です。

ただし、1TBのディスクは、Dドライブが約1GB程度に切ってあってここにはリカバリーソフトが入っていますが、その他はすべてCドライブです。

私の経験ではシステムパーティション=OSは時々壊れますが、データパーティションが壊れたことはないので、システムが壊れても、自分の作業データは取り出せるように、システムとプログラムやデータを別々のパーティションに入れています。

これまで何度も使ったEaseUSで、ただし「64ビットOSでも大丈夫かな」という不安が多少あったのですが、Cドライブ300GB、Dドライブ約1GB、KおよびHドライブ(何故かE,Fではありません)約300GBに設定しリブートすると、恐れたことが起きました。

通常、EaseUSの設定をしてリブートすると、OSが立ち上がる前にEaseUSがパーティションの切り替え作業を始めますが、今回はEaseUSが「何かやらかしました」。電源を切って再立ち上げしても、「Recovery 」と英文のメッセージが出ます。

色々やりましたが結局改善できず、「システムがぶっ壊れた」という結論を出すしかありません。リカバリー・ディスクを作っていないので、残った手は別のインストール・ディスクで新たにOSをインストールするしかありません。

[Action Pack]で購入したWin8.1のディスクでインストールするすることにしました。内臓DVDドライブではなく、USB DVDでのインストールです。これまでは当然内蔵ディスクでインストールしていましたが、USBの方が優先のようです。初めての経験です。

しばらく、コンピュータの最新の環境から遠ざかっていましたので、「世の中色々進歩しているんだな」という感想です。

インストールDVDから、壊れたディスクを覗くことができました。OS修復を試みましたが不可で、新規インストールしました。

無事Win8.1のインストールが完了、再起動すると、HPで元々インストールしてあったOSと、新規のOSが選択できるようになっています。が、旧OSを選択するとやはりOSの起動ができません。新しいOSを起動するしかありません。使えない旧OSの選択を促すのは気持ちが悪いことです。

HPに問い合わせましたが、ユーザにはコンピューターを出荷時の状態に戻すことができないとのことです。

ならばと、自作PCで使っているWin 8のディスクをこのコンピューターに接続してみましたが、動作しません。理由はディスクのパーティション管理がMBRになっていて、HPではGPT だけをサポートしていますので、MBRディスクを受け付けません。

Win 8対応のEaseUSを購入、ディスクを一度クリアして、GPTに初期化して、無事Win 8.1をインストールすることが出来ました。(HPのオリジナル・ディスクはしばらくこのまま保存しておきます)

 

暫くぶりにコンピューターを触るといろいろ新しいことが勉強になります。次のようなことがあります。

今回初めてパーティション管理にGPTを使いました。まだよくわからないことがありますが、GPTでディスクを初期化すると、自動で管理用のパーティションが2,3個できます。

また、ディスクを一つしか接続していないのに、複数パーティションを切ると、C,D,Eという連番ではなくて、 C,E,G になりました。理由がわかりません。

Win8は試用では使ったことがありますが、今回初めて本格的に使います。Win8はWindows 3以来のWindowsの使い勝手から大きく変更されましたので、敬遠していたのですが、これを機会に本気で使っていきたいと思います。

ホームグループはWIn7で導入された機能ですが、Win8では簡単に設定できるようになりました。

自動的にSkyDriveと連動します。これも便利です。

Office2013をインストールしましたが、インターネット(SkyDrive ?)と連動し、まだよくわからないですが、とても改善しているようです。

このブログはWordPressを使っているのですが、いつからかコピー・アンド・ペーストができなくなっていました。WordPressの設定がおかしいのかと色々やりましたがダメで、インターネット・エクスプローラー(IE)でなくSafariならうまくいきましたので、WordPressはSafariを使っていました。

新しいOSはどうなのかと期待したのですが、やはりIEはだめです。
要するIEの問題です。
新しいOSでもWordPressではSafariを使うことにします。

いまブログを書いていますが、ワープロのインテリセンスが改善されているようで、かなを打つと自動で漢字や短い句の候補が表示されます。
これもとてもいい改良です。

これからは、開発は自作のリムーバブル・ディスクを使い、日常的な文書作成やメールはこのコンピュータを使っていこうと思います。

これと前後して、[I-O Data]のnet.USBという簡単な器械を購入しました。これをLANネットワークにつなぎ、これにUSB機器を接続すると、LANでつながったコンピュータから、それらの機器にアクセスできます。

すなわち、net.USBにUSBタイプの外付けHDDを接続しておくと、ネットワーク上のPCからの指示で、自分のPCに直接接続しているように使えます。また、プリントー・サーバーとしても使えるようです。

もう一つ、前々回のブログで、「Dellで使っていたWin7のHDDを他のコンピュータで使うことができない」というマイクロソフトの回答を紹介しましたが、もしかしたらと裏技でWin7 Proにバージョンアップし、リムーバー・ディスクに入れて自作コンピューターで使うことができました。DellのHDDをそのまま生かすことができて、この点でも今回の作業は満足です。

Dell Studio 540が壊れました

メインで使っている「Dell Studio 540」のハードディスクが壊れました。
このコンピュータは2009年7月に500MB VISTAで購入し、
2012年8月HDDが壊れたので1TBに交換し、今回は2度目の交換です。
前回は約3年での交換でしたが、今回は2年足らずでの交換です。

このコンピュータは、昨年OSをWindows7にバージョンアップしましたが、
結局5年間使い続け、様々なソフトを追加してきましたので、
今となっては、使わないソフトも入っていたり、
コンピュータのなかはゴチャゴチャです。

今回新しくOSを入れ替えることも考えたのですが、
これまで使ってきたアプリケーションをすべてインストールしなおさなければいけないので、
新規OSへの変更は躊躇しました。

次のよな引越し作業をしました。

これまで1TBのHDDでしたが、今回は東芝の2TBのHDDを購入しました。

このHDDをUSBでDellに接続、
引越しソフト「EASEUS Partition Manager」を使い、
4つあるパーティションを一つづつ新しいHDDにコピーしましたが、
MBRのことを忘れていました。
すなわち、このままではこのディスクから起動できません。

Windows7のヘルプでは、新しいHDDを接続すると、
初期化のメニューが出ると書いてありますが、
色々やってもそのメニューが出ません。

結局様々なトライは諦めで、丸ごとディスク・コピーをしました。
コピーしたディスクをDellにセットし正常起動することを確認。

1TBを2TBにコピーしたので、新しいディスクに未使用エリアがあります。
パーティションを切り替えて、これでディスクの丸ごと引越しが完了です。
と思ったのですが…

新しいディスクで立ち上げ、
あちこちファイルをみていると突然ダウン。
画面が真っ黒くなり、キーボードもマウスも反応しません。

メインの電源は点灯しているが、HDDのLEDは消えています。
ハードディスクが動いているかどうか確認しませんでしたが、
過去数度同じ現象を経験していましたので、
これが原因でHDDが壊れたと考えるのが合理的です。

このまま使い続けていたのでは、またHDDを壊します。Dellはお払い箱にすることにしました。

Dellにつけた2TBの新しいHDDをリムーバブル・ディスクケースにいれ、
自作のコンピュータにセットし、電源をいれます。

グラフィックが異なるし、どれだけ不具合がでるか、
恐る恐る立上りをみましたが、意外にも全くトラブルがありませんでした。

Winodwsの認証に問題があります。
このOSは「Dell Studio 540」で認証されていたのですが、
ハード環境が変わると、新たな認証が必要になります。
「Action Pack」でWindowsのライセンスを持っているのですが、
これは「Windows 7 Pro」のものです。
どうすればいいかマイクロソフトに問い合わせています。
OSを「Windows 7 Pro」にバージョンアップしなければいけないかもしれません。

また、自作のリムーバブル・ディスク対応コンピュータは、
様々な開発環境でプログラム開発するために使っているので、
やはり、メインのコンピュータを新規に購入しなければ不便です。

これまでDellを使いましたが、今回はヒューレット・パッカードを使うことにしました。
キャンペーンで、CPU i7、メインメモリー 8GB、HDD 1TB、21.5モニター付き、
送料、税込み、9万5千円。「適当か」と思っています。

納期は2.3週間かかるようです。
HPは東京での組み立てています。
Dellは電話対応および組み立ては中国ですので、
本音をいうと「中国はやめておこう」という心境もあります。

 

4月19日 その後:
認証についてマイクロソフトに確認したところ、
Dellで使った「Win 7 Home」OEM OSを、
他で取得したWin 7の他のエディション(正規であっても)にアップグレードできないという回答です。
この際開発環境を再検討しようと思います。