読者です 読者をやめる 読者になる 読者になる

Visual Studio 2008 SP1 on Windows 7

Windows 7 (Build 7000)上にVisual Studio 2008 SP1をインストールして、いくつかのコードをビルドしてみたところ、一部のプロジェクトで、

1>------ Build started: Project: test, Configuration: Release x64 ------
1>Embedding manifest...
1>mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "..\..\bin\test.exe". The binary is not a valid Windows image.
1>Build log was saved at "file://c:\Users\espresso3389\Documents\Projects\cel_baselib\objs\test\BuildLog.htm"
1>test - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

のような問題が発生することがわかった。この状態で、出力されたバイナリを直接実行すると、

C:\Users\espresso3389\Documents\test>test.exe
アクセスが拒否されました。

という状態だ。試しに、Vista上でビルドしたバイナリと比較すると、マニフェストが追加されていない以外にも、バイナリ上にちらほらと差違がある。タイムスタンプか何かのような気もするけど、いずれにしても何かがおかしいらしい。調べてみると、

mt failure. Error c101008d - Microsoft Connectというフィードバックが見つかる。Windows 7 6801でも同じと書いてある人もいるので、まぁ、仕方がないのだろう。実行ファイルにマニフェストを埋め込むタイミングの問題のようだが、実際のところはわからない。

しばらくはクロスビルドをやっておけということか。