У меня есть сценарий MSBuild, который я хочу вызвать из сценария PowerShell в процессе развертывания. Если я вызываю скрипт сборки через bat-файл, все работает хорошо. Если я делаю то же самое в PowerShell, я получаю ошибку CS1668 при поиске странных и замечательных путей, которых нет на моей машине.
Я знаю, что попадаю в сценарий MSBuild, поскольку эти ошибки происходят из-за целей сценария MSBuild (это показано в журнале)
Файл bat и сценарий PowerShell находятся в одном месте, рядом со сценарием сборки.
Ошибка:
ошибка CS1668: предупреждение как ошибка:
Неверный путь поиска 'C: \ Program
Файлы \ Microsoft Visual Studio
8 \ VC \ AtlMfc \ Lib 'указано в' LIB
переменная окружения '-' Система
не могу найти указанный путь. '
ошибка CS1668: предупреждение как ошибка:
Неверный путь поиска 'C: \ Program
Файлы \ Microsoft Visual Studio
8 \ VC \ PlatformSDK \ Lib ', указанный в
«Переменная среды LIB» - «The
система не может найти указанный путь.
«
Я проверил, и ни один из этих путей НЕ существует на моей машине.
Почему запуск из PowerShell изменяет пути, которые ищет MSBuild?
Заранее спасибо
RhysC
EDIT - добавление в коде: NB имя сценария MSBuild - AutomatedDebug.build.
СКРИПТ ПОЛОЖЕНИЯ:
#Begining of script
$CurrentPath = Split-Path (Split-Path $myinvocation.mycommand.path )
#Assign the Build script paths. 1 is for building and testsing, 1 is for deployment (to keep things clean)
$MSBuildScriptBuildAndTestPath = $CurrentPath + "\Tools\AutomatedDebug.build"
$MSBuildScriptDeployPath = $CurrentPath + "\Tools\Deploy.build"
#Run the automated build with tests
Write-Host "*** Run the automated build with tests ***"
C:\Windows\Microsoft.NET\Framework\v3.5\MSbuild.exe $MSBuildScriptBuildAndTestPath "/t:AllTests" "/l:FileLogger,Microsoft.Build.Engine;logfile=AllTests.log"
if($LastExitCode -ne 0)
{
throw "AllTests failed"
}
Write-Host "*** FINISHED: Run the automated build with tests ***"
Файл летучей мыши
@C:\Windows\Microsoft.NET\Framework\v3.5\MSbuild.exe AutomatedDebug.build /t:AllTests /l:FileLogger,Microsoft.Build.Engine;logfile="AllTests.log"
@pause
enter code here