Windows XPや 2000に何故 .Net Framework 4.5が入らないか
Windows 2000 に .Net Framework 4.0が入ってそれなりに動くようになったので、今度は 4.5がインストールできないか実験してみました。
4.5はただの 4.0の改良版なので、普通に考えればそのまま動くはず…
.NET Framework 4.5 RCはWindows XPとVistaではサポートされません | サラリーマンの副業奮闘記
まず、インストーラーはそのまま実行できるのでエラーダイアログが出たところで、ファイルの吸出し。
msiexec /i netfx_Full_x86.msi EXTUI=1 /lv*x "%temp%\lognet45.log"
を実行します。
MSI (s) (94:48) [14:02:57:265]: MainEngineThread is returning 1603 MSI (s) (94:08) [14:02:57:265]: Destroying RemoteAPI object. MSI (s) (94:34) [14:02:57:281]: Custom Action Manager thread ending. MSI (c) (28:94) [14:02:57:312]: Back from server. Return value: 1603 MSI (c) (28:94) [14:02:57:312]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1 MSI (c) (28:94) [14:02:57:312]: PROPERTY CHANGE: Deleting SECONDSEQUENCE property. Its current value is '1'. 操作終了 14:02:57: ExecuteAction。 戻り値 3。 操作終了 14:02:57: INSTALL。 戻り値 3。 MSI (c) (28:94) [14:02:57:359]: Note: 1: 1708 MSI (c) (28:94) [14:02:57:359]: 製品: Microsoft .NET Framework 4.5 -- インストールに失敗しました。 MSI (c) (28:94) [14:02:57:375]: MainEngineThread is returning 1603 |
INSTALLでエラー3が帰ってるのが原因で終了
ちょっと遡る
MSI (s) (94:48) [14:02:57:140]: Error in rollback skipped. Return: 5 MSI (s) (94:48) [14:02:57:140]: Unlocking Server MSI (s) (94:48) [14:02:57:140]: PROPERTY CHANGE: Deleting UpdateStarted property. Its current value is '1'. 操作終了 14:02:57: INSTALL。 戻り値 3。 Property(S): UpgradeCode = {10E35DD9-8269-3F1E-97F4-99F0DA3C2CEC} |
INSTALLでエラーなのだけどどこでエラーなのかは具体的にわからない。
MSI (s) (94:48) [14:02:48:234]: Creating MSIHANDLE (6) of type 790536 for thread 2888 MSI (s) (94:B0) [14:02:48:234]: Invoking remote custom action. DLL: D:\WINNT\Installer\MSIC9.tmp, Entrypoint: QuietExec MSI (s) (94:B0) [14:02:48:250]: Closing MSIHANDLE (6) of type 790536 for thread 2888 |
怪しいのがこれ、DLLの呼び出し実行でスレッドがわずか 0.016秒で終了している所
ファイルを取り出してみた。正式ファイル名は netfxca.dll
kernel32.dllの LCMapStringExと InitOnceExecuteOnce と GetTickCount64 を使っている…。
というわけで、これが原因・ω・)ノ
InitOnceExecuteOnce は特殊なコンポーネントなのでごまかすの難しいなぁ…。
無理やり実行させてみると、メモリ ロケーションへのアクセスが無効です。 (998)なので初期化処理も特有のようだ
Comments