スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【同じタグを付けた記事の一覧】

(失敗)Windows Live Mesh を WinXP にインストールしてみる

2010年04月23日(土)23時50分

動きませんでした

前回「Windows Live Sync  の終了と Windows Live Mesh」で Windows Live Mesh についていろいろと書いたわけですが、しかし「WinXP には対応していません」で終わるのも芸がないなと思いましたので、とりあえずインストールぐらいは試してみることにしました。
結論から書きますと、「動きませんでした」ということで終了なんですが、それだけではさびしいので、試した手順をメモしてみました。

「livemesh.exe -force」?

まず、こういうことは下手に自分で試行錯誤するより、ネットでちょっと検索すれば簡単に解決することの方が多かったりしますので、始める前に検索してみました。
するとほどなく、Windows Live Essentials ではなく、Windows Live Mesh 単独のインストーラ「livemesh.exe」を使用し、OS の制限を無視する「-force」オプションを指定してインストールすれば、WinXP でもインストール・使用が可能である、という情報が見つかりました。
というわけで、「もう解決したも同然」と livemesh.exe を探したのですが、これがどこにもありません(正規の経路と思われる場所では)。
これは自分の推測なのですが、この livemesh.exe というのは、ベータ版の、つまりまだテスト運用中だった頃の Windows Live Mesh 用インストーラなのではないかと思います。
そして調べてみたところ、どうやらこのベータ版も Windows Live Sync 同様、先月末(2011年3月31日)でサービスを終了しているようで、もしこの推測が正しければ、どうにかして livemesh.exe を探し出し、上記の方法でインストールできたとしても、やはりもう使用はできないのではないか、と。
もちろん、「探し方が悪い」とか、「開発者向けの有料会員用サイトでしかダウンロードできない」とか、そういうことかもしれませんし、できればそうであってくれた方が(WinXP で動かせる可能性があるという点で)ありがたいのですが。

これ以降の記述に関するご注意

なお、これ以降の記述には、必要なファイルやその URL が書かれていますが、それらは執筆時点(2011年4月)に確認したもので、その後にアップデートやバージョンアップがあれば変更されていると思います。
ですので、もしこれ以降の記述をもとに「自分でも試してみよう」と思われる場合には、ここに書かれたファイルや URL の情報そのものではなく、その情報の割り出し方を参考に、その都度最新の情報をご自身で確認いただくようお願いします。

wlsetup-web.exe から情報を取り出す

「wlsetup-web.exe」というのは Windows Live Essentials のインストーラで、これは「web」という文字からも推測できるように「WEB インストーラ」、つまりこれ自体に各アプリケーション本体は含まれておらず、本体はインストール時に必要に応じてインターネット上からダウンロードされるようになっています。
これを使ってインストールできれば話は簡単なのですが、残念ながら WinXP では実行しても「wlsetup-web.exe は有効な Win32 アプリケーションではありません。」とエラーが出て終了します(これはスタンドアロン版のインストーラである wlsetup-all.exe でも同じです)。
このエラーは回避可能(方法は後述)なのですが、このエラーを回避しても結局は別のエラーで実行できません

有効なWin32アプリケーションではありません1

で、またネットで検索してみますと、wlsetup-web.exe から必要な情報を割り出すという方法が紹介されていましたので、それを試してみることにしました。
まず、wlsetup-web.exe をメモ帳で開き、「http:」で検索すると「http://g.live.com/1rewlive4catg/catalog-web.cab」というアドレスが見つかります。
これをダウンロードして展開(解凍)しますと「catalog.xml」というファイルがあり、ここに各アプリケーションのインストールに必要な MSI ファイルやその URL などの情報が書かれていました。
以下にいくつか、その catalog.xml の項目について説明をします。

catalog.xml の「package id」タグと「language」タグ

まず、catalog.xml では、各ブロックごとに「package id」という文字列の識別子が振られているようで、例えば「<package id="wlsynclang-i386">」という文字列で検索すれば、 Windows Live Mesh 用のインストーラ情報ブロックにたどり着きます。
ただし、この「<package id="wlsynclang-i386">」ブロックは大量にあり、これは「lang」の文字列で分かるように、各国版のブロックがそれぞれに存在するためです。
ですので、こういう場合は日本語版のタグ「<language>ja</language>」が存在するブロックの情報を使います。
なお、各国共通で使用されるコアなコンポーネントは「<language>neutral</language>」のタグで末尾にまとめられている模様です。

catalog.xml の「source」タグと「patchsource」タグ

そして各ブロック毎に「source」タグが存在し、つまり「<source relative="false">」というように書かれている部分の次に存在する文字列が、そのインストーラのダウンロード URL になります。
これらは大体 CAB ファイルとなっており、それを解凍すると 7Z ファイルを取り出すことができ、それを解凍するとなぜかまた CAB ファイルが入っていて、それを解凍してやっと MSI ファイルを入手できる、という念の入った構成になっています。
また、ブロックによっては「<patchsource relative="false">」というように書かれた「patchsource」タグがあり、ここに記載された URL から MSP ファイルが入手できます。
この MSP ファイルは、いわゆるアップデータのようで、MSI ファイルをインストールした後に実行することで、リリース後に判明したバグの修正などを行うものらしいです。

catalog.xml の「installCommandLine」タグ

また、まれに「installCommandLine」タグというのが存在するブロックがあり、その名前から見て、おそらくインストール時に MSI ファイルに対して指定するコマンドライン・オプションと思われますので、これもメモしておきます。

catalog.xml の「dependencies」タグ

最後に「dependencies」タグですが、これが一番面倒です。
「dependency=依存状態」ということで、例えば「このアプリケーションには .NET Framework が必要です」なんてものは最近ずいぶんたくさんありますが、この .NET Framework にあたるものが「dependencies」タグに列挙してあります。
つまり「このパッケージには○○が必要です」ということで、これが記述されているブロックのパッケージをインストールする前に、「package id=○○」ブロックのパッケージをインストールしなければなりません。
そしてまた、その○○のブロックにさらに「dependencies」タグがあり…、とどんどんさかのぼっていって、最終的に他に依存するものが存在しないパッケージから順にインストールしていくことになります。

Windows Live Mesh に必要なパッケージ群

そうして、WinXP(x86) に Windows Live Mesh(日本語版)をインストールするうえで必要だと思われるパッケージを、日本語用の wlsynclang-i386 から次々とさかのぼってリストアップしていくと、2011年4月時点では以下のようになりました。
※[]内はパッケージIDで()内はコマンドライン・オプション。

  1. [crt90-i386]crt90.msi
  2. [Watson-x86]dw20shared.msi(APPGUID={00000000-0000-0000-0000-000000000000})
  3. [soxe.definitions]soxe.definitions.msi
  4. [soxe]soxe.core.msi
  5. [soxe]d-soxe.core.msp
  6. [Contacts]Contacts.msi
  7. [Contacts]d-Contacts.msp
  8. [PIMT]pimt.msi
  9. [MeshBetaRemover]MeshBetaRemover.exe
  10. [MeshRuntime]MeshRuntime.msi
  11. [MeshRuntime]d-MeshRuntime.msp
  12. [LiveRemoteClient-i386]WLRemoteClient-i386.msi
  13. [LiveRemoteService-i386]WLRemoteService-i386.msi
  14. [wlsync-i386]WindowsLiveSync.msi(SUITEINSTALL=1)
  15. [wllogin-i386]wllogin_wlx-x86.msi(NOMU=1)
  16. [UXPlatformCore]UXPlatform.msi
  17. [UXPlatformCore]d-UXPlatform.msp
  18. [UXPlatformLang]UXPlatformLang.msi
  19. [LiveRemoteActiveXLang]WLRemoteActiveX.msi(LIVEREMOTE_INSTANCE=SUITE)
  20. [WLRemoteClientLang]wlremoteclientlang-i386.msi(LIVEREMOTE_INSTANCE=SUITE)
  21. [WLRemoteServiceLang]wlremoteservicelang-i386.msi(LIVEREMOTE_INSTANCE=SUITE)
  22. [wlsynclang-i386]WindowsLiveSyncLang.msi(SUITEINSTALL=1)

もちろん、「これらすべてが必要」というわけではなく、例えば「MeshBetaRemover.exe」はおそらくベータ版をインストールしたことがなければ実行する意味はないでしょうし、他にも実行するだけであれば不要なものはあると思います。
もっとも、実行に必要なものを厳選しようがしまいが、動かないことにかわりはないのですが。

Windows インストーラーエンジン

ということで、リストアップしたパッケージを順にインストールしていくわけですが、WindowsLiveSync.msi の時点で「このインストールパッケージを Windows インストーラサービスでインストールできません。新しいバージョンの Windows インストーラサービスが含まれる Windows Service Pack をインストールする必要があります。」というエラーで躓くことになります。

Windows インストーラ

MSI ファイルというのはインストールに必要な情報が書かれたファイルで、これをダブルクリックした場合、Windows インストーラーエンジンというものが実行され、それがMSI ファイルから必要な情報を読み込んで処理することになります。
で、WinXP では Windows インストーラーエンジン 2.0 が標準で入っているのですが、このバージョンでは WindowsLiveSync.msi を解釈・実行できないようです。
というわけで「Windows インストーラー」を検索してみますと、「Windows Installer 4.5 Redistributable - 日本語」というのが見つかりました(2011年4月時点で「http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=5a58b56f-60b6-4412-95b9-54d056d6f9f4」)ので、ここから WinXP 用と思われる「WindowsXP-KB942288-v3-x86.exe」をダウンロードしインストールします。

Windows Live ID サインインアシスタント

そうして WindowsLiveSync.msi をクリアしても、次はwllogin_wlx-x86.msi で躓くことになります。
具体的には「Service 'Windows Live ID Sign-in Assistant' (wlidsvc) faild to start.Verify that you have sufficient privileges to start system services.」と、何かのサービス起動に失敗するようで、続行できません。

Windows Live ID Sign-in Assistant

これが必要なものなのかどうかはわからないのですが、とりあえず「Windows Live ID サインイン アシスタント」で検索して見つけた「Windows Live ID サインイン アシスタント 6.5」(2011年4月時点で「http://www.microsoft.com/downloads/details.aspx?FamilyID=5e193cfe-f45a-4e29-b6b7-984e7802c639&DisplayLang=ja」)から「wllogin_32.msi」をインストールして代用としてみることにしました。

「有効な Win32 アプリケーションではありません。」

紆余曲折を経て、とりあえずインストールは完了し、スタートメニューに「Windows Live Mesh」が表示されるところまではたどり着きました。
が、起動するとまた「有効な Win32 アプリケーションではありません。」といわれてしまいます。

有効なWin32アプリケーションではありません2

一つの可能性として、間違えて64ビット用の実行ファイルがインストールされているのではないか?と、「dumpbin /headers WLSync.exe」で確認してみましたが、「14C machine (x86)」としっかり32ビット用でした。
もう一つ、実行ファイルに対応 OS のバージョンを埋め込むことで、それ以外の OS で実行できないようにすることができるようで、この方法を使って制限されているのではないか?と考えました。

Force Compatibler For Windows 2000

で、この OS の制限を解除するツールが「Windows2000 実験室」で配布されている「KDW(KnownDlls wrapper)」に含まれています。
ということで、早速「http://www7.atwiki.jp/win2000/pages/16.html」から KDW の最新バージョンをダウンロード・解凍して「fcwin2k.exe」を実行します。
そして Windows Live Mesh の実行ファイル本体である「WLSync.exe」を読み込み、「実行可能」にチェックして「書き換え」します。

fcwin2k

すると実行できるようになりました。

エントリ ポイントが見つかりません

…実行できるようになりましたが、実行すると「プロシージャ エントリ ポイント RegSetKeyValueW がダイナミック リンク ライブラリ ADVAPI32.dll から見つかりませんでした。」と。

エントリポイントが見つかりません

そこで「RegSetKeyValueW」を検索してみますと、「http://msdn.microsoft.com/en-us/library/ms724921%28v=vs.85%29.aspx」で「Minimum supported client:Windows Vista」となっており、確かに WinXP では使えない機能のようです。

Dependency Walker

では、この RegSetKeyValueW さえなんとかすれば使うことができるのか?ということですが、こういう「実行ファイルが必要としている DLL やその関数を調べる」ためのツールとして、「Dependency Walker」というソフトウェアがあります。
これで調べてみよう、というわけで、「http://www.dependencywalker.com/」からダウンロードして WLSync.exe を覗いてみたところ、確かに RegSetKeyValueW が利用不可(赤色)になっていますが、他にも赤色表示のものが山ほどあります。
また DLL 内に必要な関数が実装されていないどころか、必要な DLL そのものが存在しないというケースも多々見られるようです。

Dependency Walker

これらに関して、代替関数や代替 DLL を地道に製作・実装していけば何とかなるのかもしれませんが、それはとても自分のレベルで手におえるものではありませんので、ここで断念、ということに。
もしかしたらもっと簡単にできる方法があったりするのかもしれませんので、それに期待して待つ、ということに相成りました。

関連記事

【同じタグを付けた記事の一覧】
ソフト紹介 バックアップ プログラミング WindowsLiveMesh

スポンサーサイト

コメントの投稿

非公開コメント

すごいですね

私も何とかXPでLiveMeshを使いたくていろいろと情報を探していたのですが、なるほどなかなか奥が深い問題なのですね。
ムービーメーカー2.6をXPに、の時はそれほど手間がかからなかったので、今回もあるいはと思っていたのですが、話がdllのことにまでなってくるとちょっと手が出せなさそうですね…。
Vistaのdllを入れちゃえば解決!なんてことでもないのでしょうし。
ってか、そこまでするならVistaにアップグレードしろって話になりますしね(笑)。

Re: すごいですね

はじめまして、あなぐまさん。

実際のところ自分が無駄に遠回りをしているだけで、
本当は「livemesh.exe -force」みたいな簡単な方法があるのではないか?
というより、あって欲しい!と今でも切に願っています。

そして記事中には書いていないんですが、DLLの差し替えやダミーDLLの作成なんかも実は試しており、
ただ、あまりに膨大な手間と展望の見えなさと技術力不足のためほどなく挫折・断念してしまいました。

自分の能力ですと、仮にそれを完成させることができたとしても、
それにかかる時間を例え時給500円で換算しても
Win7 Ultimateぐらい余裕で何(十?)個も買えそうな勢いでしたので、
…まあ、Win7買う方が絶対早いな、と(笑)。

そうだったんですね

電脳太助さん、お返事ありがとうございます。
なんと、実はDLLの差し替えまでお試しだったのですね。
それでダメとなると、マイクロソフトも今回はずいぶん気合を入れてXP排除に乗り出してますね(笑)。
「livemesh.exe -force」の件は、私も電脳太助さんと同意見で、これはbeta版のインストールファイルを使ってうまく行ったことが誤って伝えられたのではないかと思っています。
もちろん、beta版のLiveMeshは元々XPに対応していましたから(愛用していました)、それならうまく行くのは当然ですが…。
あるいは、このbeta版のファイルをいじくって現在のLiveMeshに対応させられないか、とも考えましたが、私の乏しい知識ではそちらの道も険しそうです…。
最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
09 | 2017/03 | 10
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
プロフィール

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(65)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(34)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(26)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(17)
画像管理(15)
WindowsLiveWriter(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
ウォークマン(9)
fi-6130(9)
FLAC(9)
Gracenote(8)
英語音読学習計画(8)
Prolog(8)
JavaScript(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
wxWidgets(7)
spcbght(7)
DCP-J552N(6)
W63CA(6)
MP3Gain(6)
WinRT(6)
iGoinLM(6)
VirtualBox(6)
WindowsLiveMesh(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
楽器演奏(5)
Mery(5)
LAME(5)
音楽技術(5)
GalateaProject(4)
LLVM(4)
nLite(4)
MIDI(4)
ホームページ(4)
WindowsLiveSkyDrive(4)
GalateaTalk(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
113位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
12位
アクセスランキングを見る>>
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。