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

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

という設定が多いことが違う。これもアップデート漏れか。
いずれにしても、似たようなバッチファイルが多くて困る。