2つのvcvars32.bat
Visual Studio 2008でごにょごにょしようと考えていろいろ調べていたら、vcvars32.batが2種類あることに気づいた。
%VS90COMNTOOLS%vsvars32.bat
と、
%VS90COMNTOOLS%..\..\VC\bin\vcvars32.bat
下の奴は、無理にVS90COMNTOOLSからのパスにする必要もないが、それは良いとして、下の奴は、
%VS90COMNTOOLS%..\..\VC\vcvarsall.bat
から呼び出されるx86用のバッチファイルだ。
まぁ、2つあるだけならば別にいいのだけれども、問題は、この2つのバッチファイル、厳密には同じ設定を行っているわけではないということ。WiX用にBootstrapper(setup.exe)を作成していて気づいたのだけれども、下のファイルでは、このBootstrapper用の設定が行われない。
何が違うのかを調べてみたところ、%VS90COMNTOOLS%vsvars32.batには、Framework35Versionという環境変数が定義されており、LIBPATH、PATHに、C:\Windows\Microsoft.NET\Framework\v3.5が入っている。
逆に、%VS90COMNTOOLS%..\..\VC\bin\vcvars32.batには、Framework35Versionはなく、LIBPATHには、C:\Windows\Microsoft.NET\Framework\しか入っていない。また、PATHには、
C:\Windows\Microsoft.NET\Framework\ C:\Windows\Microsoft.NET\Framework\\Microsoft .NET Framework 3.5 (Pre-Release Version)
という困ったPATHが入っている。どうも、ベータ版からアップデートされていないらしい。
アップデートされていないといえば、%VS90COMNTOOLS%..\..\VC\bin\amd64\vcvarsamd64.batは、%VS90COMNTOOLS%..\..\VC\bin\vcvars64.batとほとんど内容が一緒なのだが、
@echo Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.
という表示があるのと、
@SET Framework35Version=v3.5
という設定が多いことが違う。これもアップデート漏れか。
いずれにしても、似たようなバッチファイルが多くて困る。