(これの多くは、すでに上に書かれていることを繰り返します。)
レガシー プロジェクト (オリジナルの Xbox で実行されるプロジェクトなど) をサポートするために、Win7 64 ビットで管理者として VS2003 を実行する必要があります。古い XDK には VS2003 が必要なため、アップグレードはオプションではありません。WinXP を実行できますが、Win7 の方が好みです。
VS2003 は Win7 では公式にサポートされていません。そうしようとすると、かなり厄介な問題がいくつか発生します。
ファイル内検索により、VS2003 がハングします。PDB ファイル ハンドル リークが原因で、リンクが失敗します。ファイル内検索のハングは、「視覚テーマを無効にする」を使用することで解決されます。VS2003 ショートカット ([スタート] --> [Microsoft Visual Studio .NET 2003]) に移動し、右クリックしてコンテキスト メニューを表示し、[互換性] タブの [設定] ペインを選択して、[ビジュアル テーマを無効にする] をオンにします。
リンカ エラー (LNK1201) は、デバッガを使用してプログラムを実行し、停止し、ファイルを変更してビルドすると発生します。エラーは、リンカーがそのファイルに書き込もうとしているときに、Visual Studio が PDB ファイルへのハンドルを保持していることです。VS2003 を停止して再起動すると、この問題を回避できます。動作しますが、面倒です。
また、Microsoft SysInternals の「handle.exe」ユーティリティを使用して、特定のファイルのプロセスが保持しているハンドルを見つけて閉じることもできます。handle.exe を呼び出すスクリプトを記述し、VS2003 プロジェクトをセットアップして、そのスクリプトをビルド前イベントとして実行します。(このスレッドを参照してください。)ただし、handle.exe は管理者として実行する必要があります。
通常の手順 (互換性設定など) を使用して、handle.exe を管理者として実行するように変更できますが、(明らかに) ネストされたシェルで handle.exe が実行され、stdout テキストが呼び出しスクリプトに到達しません。
VS2003 を管理者として実行することができます。この場合、ビルド前スクリプトも管理者として実行されるため、handle.exe が実行され、それが機能します。
残りの秘訣は、VS2003 SLN ファイルを適切に開くことです。VS2003 を自動的に管理者として実行すると、VS バージョン セレクターは VS2003 を実行できません。理由はわかりませんが、そうです。
VSLauncher.exe の代わりに VS2003 devenv.exe を使用して SLN ファイルを開くように関連付けることができます。これは機能しますが、すべての新しい SLN ファイル (2005、2008、2010、2012、...) を開くことができません。
最後のステップは、VSLauncher.exe を管理者として実行することです。このスレッドが示すように、これは KB2492386 の時点で失敗します。その更新プログラムをアンインストールすることは、すべてを機能させるために、この物語の最後のステップでした。