Windows 2000に .Net Framework 4.5をインストールしてみた(笑)

net45
とりあえず、 Windows 2000に .NET Framework Full Client 4.5をインストール成功したので報告。

単にインストール成功しただけ…ではあるのだが。


まず、方法。
kernel32 に LCMapStringExInitOnceExecuteOnceGetTickCount64 を実装。
netfxca.dll を 4.0のものと入れ替えて MSIを作成。
サービス関連のインストール部分を削除(2000だと失敗するため)

これでとりあえず、エラーなしでインストール成功。

だが、4.5対応アプリを起動するとエラー

どういうことか検証してみたよ|。・ω・)ノ

net45a
欠陥エクスポート

mscoreei.dll

ADVAPI32
 RegDeleteTreeW
 EventWrite

KERNEL32
 GetCurrentPackageId

clr.dll

ADVAPI32
 EventRegister
 EventWrite

KERNEL32
 GetNLSVersionEx
 FlushProcessWriteBuffers
 CreateThreadpoolTimer
 SetThreadpoolTimer
 CloseThreadpoolTimer

OLE32(遅延)
 CoCreateInstanceFromApp

msvcr110_clr0400.dll

KERNEL32
 FlushProcessWriteBuffers
 GetNumaHighestNodeNumber
 GetCurrentProcessorNumber
 GetLogicalProcessorInformation
 CreateSemaphoreExW
 GetTimeFormatEx
 GetDateFormatEx
 GetLocaleInfoEx
 IsValidLocaleName
 CompareStringEx
 GetUserDefaultLocaleName
 EnumSystemLocalesEx

とりあえず、コアとなるDLLにこれだけ欠陥エクスポートがあることが判明・ω・;

おすすめ

3件のフィードバック

  1. ugambow より:

    この様子では(追加する手間も含めた上で)使えるようにするのは難しいという感じですかね。
    久しぶりに起動させたとあるニコニコ動画用コメントビュアーが来年3月まででXPを切り、.Net4.5.1に移行するというのを先ほど見つけ、未だにメイン機はXPで、
    (XP入れるには)性能とか低めなノートマシン用に2Kを入れようとしていた(そのマシンの液晶が割れたため放置)
    レベルなので1台時代遅れ性能なメイン機より性能が低いVistaノートはあっても性能や機能的にメイン機でないとやっぱりだめだし、
    入手したけど放置されている7(64bit)はドライバ的に動かないものがあったりで結局はXPで使える別のビュアーに移行しないといけないのかなぁと考します。
    長文を書いてしまいましたが、どんどん切られていくなぁというのを実感しました。

  2. ugambow より:

    あれだけ長々と書かせていただいたというのに先ほどの長文に訂正というか注訳です。
    「(前略)~7(64bit)~(後略)」の部分ですが、7マシンを入手したのではなく64bit7のインストールディスクを入手したという意味です。

  3. mania3bb より:

    最近、XPで.Net 4.5.2を動かしたくて、こちらにたどり着きました。
    「Windows XP/2003 Extend Kit」のおかげで、インストーラーは立ち上がるようになったのですが、バージョンチェックではじかれてしまいます。
    KDWやNNN4NT5で、バージョン偽装してもダメでした。
    そのかわり、Mono 3.12.1はインストールに成功し、一か所レジストリの修正が必要でしたが、Monoで4.5.2のアプリを起動することができました。
    Mono 4.0.1以降は、インストールできるものの起動せず、Dependency Walkerで確認すると、欠陥エクスポートがいくつかありました。
    Extend Kitで、欠陥エクスポートに対応していただけないでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です