2

WinXp で Ant を使用して MSVisual c++ プロジェクトをビルドしています。

コンピューターに依存しない「devenv.com」にアクセスするには、vsvars32.bat スクリプトを使用したいと思います。残念ながら、環境変数は「exec」スコープでのみ定義されているようです。

例:

<exec executable='"${env.VS90COMNTOOLS}vsvars32.bat/>
<echo message="${DevEnvDir}" />
<echo message="${env.DevEnvDir}" />
<property environment="env2"/>
<echo message="${env2.DevEnvDir}" />

期待した結果が得られません。

「vsvars32.bat」スクリプトを使用してその環境にアクセスするにはどうすればよいですか。vars? これを達成するためのより良い方法はありますか?

4

2 に答える 2

5

直接呼び出す代わりにvsvars32.bat、環境設定をファイルに書き込む小さなヘルパー スクリプトから呼び出しますset

ヘルパー スクリプトvsenvwrap.bat:

@echo off

call "%VS90COMNTOOLS%\vsvars32.bat"

set > vsenv.txt

build.xmlヘルパー スクリプトの呼び出しで、設定ファイルを読み取りますvsenv.bat

<exec executable="vsenvwrap.bat" />
<property file="vsenv.txt" prefix="env2" />

その後、ビルド中またはクリーン ターゲットで vsenv.txt ファイルを削除できます。

これは、環境変数のリストが Java プロパティ ファイルで必要な形式にほとんど準拠しているという事実を利用しています。

于 2009-11-23T22:19:21.573 に答える
3

antスクリプトを実行する小さなバッチファイルを作成し、そのバッチファイルでantを呼び出す前にvsvars32.batを実行できます。

@echo off

setlocal

set TEMP_HOME=%~dp0

call "%VS90COMNTOOLS%\vsvars32.bat"

call "%ANT_HOME%\bin\ant.bat" %*

endlocal
于 2009-11-23T20:12:36.027 に答える