DBD::Pg on Windows VISTA

 2007年6月28日のDBD::PgとVistaというエントリで私のVista環境でDBD::Pgが「install_driver(Pg) failed: Can't load 'C:/perl/site/lib/auto/DBD/Pg/Pg.dll' for module DBD::Pg: load_file:\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c
\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B at C:/perl/lib/DynaLoader.pm line 230.\r」と言うエラーを吐いて動かない件の回避方法についてレポートした。このときはPerlですべて書いてあるDBD:PgPP
を使うことで回避した。
 最近、当時のエントリにコメントをしてくれたmanmaruさんという方がいてDBD::Pgでの対応方法を連絡してくれたので今回それを紹介する。
 要はDBD:Pgの1.49が想定しているmsvcr80.dllのバージョンが違うということなのかな?
 PPMを開いてみる。最近のPPMGUIになって分かりやすい。DBD::Pgのバージョンが1.49から2.8.7に変わるのか。manmaruさんの指定も2.8.7である。
 一度DBD::PgをUninstallして指定のバージョンをDBD::PgをPPMで再インストールする。そうすると確かにマニフェストファイルはできた。(以前の1.49の環境の中にはそんなものはなかった)で、そのマニフェストファイルを変更するところで詰まってしまった。
 その処理を行う際に必要なmt.exeはSDKにしか入っていない。私は今は開発屋じゃないのでそんなものは持たないよ。マニフェストファイル自体は単なるテキストだから手でも変えられそうだけど...。
 チャレンジャーなことをしてハマっても仕方がないし、仮に変更できたとしても、現在自分のVISTA PCではPostgreSQLを使っていないので検証ができない。
 ということで、manmaruさんの説明ページとそのむこうで現象の詳細を説明してくれているid:haraguroblogさんのページを紹介するにとどめておきたいと思う。
 あー、深いなー。