MSBuild не удалось развернуть переменные среды - PullRequest
3 голосов
/ 20 августа 2010

Я довольно новичок в MSBuild, так что, возможно, я делаю что-то явно неправильное, но мой коллега, который много работал с MSBuild, не видит никакой ошибки, поэтому я решил опубликовать здесь и посмотреть, кто-нибудь еще может это увидеть.

Я конвертирую старый пакетный файл, который мы использовали для вызова ant, в задачи MSBuild (потому что мы хотим вызывать его из MSBuild), а переменные среды всегда расширяются до ) по причинам, которые мы не понимаем.

У меня есть группа свойств, которая включает

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

(разрывы строк добавлены для удобочитаемости). Теперь ссылка Функции свойств MSBuild предполагает, что я правильно вызываю System.Environment.GetEnvironmentVariable , но всегда получаю значение ). Однако код работает отлично, когда я жестко кодирую значение.

Какую очевидную вещь мне не хватает? : О)

1 Ответ

6 голосов
/ 20 августа 2010

Если это переменная env, вы можете просто использовать ее как $(JAVA_HOME) как в <EnvJavaHome>$(JAVA_HOME)</EnvJavaHome>, см., например, используйте http://msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx

(Убедитесь, что переменная среды действительно существует, echo %JAVA_HOME% в командном окне)

...