私たちのビルド システムでは、基本的な VS2012 ではなく、VS2012 Update 1 のみが使用されるようにしたいと考えています。プログラムでこれを行うにはどうすればよいですか?
通常、正しい Service Pack がインストールされていることを確認します。ただし、これは更新であり、サービス パックではありません。そのため、Service Pack のすべてのレジストリ エントリはまだゼロと表示されています。
あ、詳しく調べたら…
いずれの場合も、コンパイラのバージョンが期待どおりであることを確認します。cl.exe の amd64 バージョンが更新前 1 (17.00.50727.1)と同じバージョンを報告するため、私は道に迷ったので、別の検出方法を探していました。一方、cl.exe の x86、x86_amd64、および x86_arm バージョンはすべて、新しいバージョン (17.00.51106.1) を報告します。
更新に関する MS ブログ投稿へのコメントで、何人かの人々が、これが意図されているかどうかを明確にするように求めていますが、応答はありません。
crtversion.h でバージョンを確認できたと思いますが、amd64 コンパイラが新しい CRT で正しく動作するように更新されていないことが心配です。