2010-08-20 4 views
3

Je ne suis pas familier avec MSBuild, je suis peut-être en train de faire quelque chose qui ne va pas, mais un collègue qui a beaucoup travaillé avec MSBuild ne voit pas d'erreur. d poster ici et voir si quelqu'un d'autre peut le voir.MSBuild ne parvient pas à étendre les variables d'environnement

Je convertir un vieux fichier batch que nous appelions ant aux tâches MSBuild (parce que nous voulons l'appeler MSBuild) et les variables d'environnement élargir toujours ) pour des raisons que nous ne comprenons pas.

J'ai un groupe immobilier qui comprend

<PropertyGroup> 
    <EnvJavaHome> 
    $([System.Environment]::GetEnvironmentVariable("JAVA_HOME")) 
    </EnvJavaHome> 
    <!-- ... --> 
</PropertyGroup> 

(sauts de ligne ajoutée pour la lisibilité). Maintenant le MSBuild Property Functions reference suggère que j'appelle System.Environment.GetEnvironmentVariable correctement, mais j'obtiens toujours une valeur de ). Le code fonctionne parfaitement quand je code dur la valeur, cependant.

Quelle est la chose évidente qui me manque? : o)

Répondre

6

S'il s'agit d'une variable d'environnement, vous devriez pouvoir l'utiliser comme $(JAVA_HOME) comme dans <EnvJavaHome>$(JAVA_HOME)</EnvJavaHome>, voir par ex. utiliser http://msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx

(Vérifiez que la variable d'environnement existe en fait si, echo %JAVA_HOME% dans une fenêtre de commande)

+0

Je viens de découvrir exactement la même chose et que je devrais frapper reload avant de poster le fait. Merci beaucoup! : 0) –

+2

Juste comme un avertissement, parce que ça m'a mordu. Visual Studio met en cache les variables d'environnement, de sorte que lorsque vous ajoutez une nouvelle variable d'environnement système, il peut rester vide. Redémarrer VS aide généralement. – slawek

Questions connexes