Team,
У меня есть сценарий powershell, который вызывает MSBUILD.exe для запуска сборки в конвейере сборки Azure devops для его упаковки.В настоящее время скрипт использует vs12.Я столкнулся с приведенной ниже ошибкой, когда он работал с vs 12.
Ошибка MSB4019: импортированный проект "C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ WebApplications \ Microsoft.WebApplication.targets "не найден.Убедитесь, что путь в объявлении правильный, и что файл существует на диске.
Итак, по предложению моего коллеги мне пришлось изменить его с 12 на 15 и жестко закодироватьниже путь для MSBUILD.
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \
И сборка выполняетсяхорошо.Итак, теперь я хотел бы использовать ENV для этого пути в моем скрипте powershell, чтобы он динамически его подбирал.
Ниже приведена функция, выполняющая сборку MS.
Function Get-MSBuild {
$lib = [System.Runtime.InteropServices.RuntimeEnvironment]
$rtd = $lib::GetRuntimeDirectory()
Join-Path $rtd msbuild.exe}
Вышеприведенный код не работает на моем агенте, и я сталкиваюсь с файлом, существует из-за ошибки диска.и я заменил $ lib на путь msbuild.как показано ниже.
Function Get-MSBuild {
$lib = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\"
Join-Path $lib msbuild.exe
}
Приведенный выше код работает нормально, но я хочу динамически сгенерировать путь, используя env или некоторую предопределенную переменную окружения.
Теперь мой вопрос: есть ли предопределенная средапеременная для динамического получения пути для
"C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \"
Заранее спасибо за помощь.