Ответ 1
Просто гадание: вы выполнили Set-ExecutionPolicy
в PowerShell x64, а в сборке работает x86 PowerShell?
Возможно, попробуйте Get-ExcutionPolicy в обеих оболочках.
У нас есть powershell build script, который вызывает другие скрипты, которые дают мне проблемы в Windows 7 64 бит. Он отлично работает под XP. Я выполнил set-executionpolicy для RemoteSigned (а также попробовал его с байпасом и неограниченным). Я могу вывести командную строку из сообщения об ошибке и запустить ее сам, и все работает нормально.
Ошибки сборки выглядят ужасно; но я все равно их включаю в полноту.
Project "C:\dev7\Source\DashPortal\DashboardGenerator\DashboardGenerator.csproj" (2) is building "C:\dev7\Source\DashPo
rtal\DashboardController\DashboardController.csproj" (15) on node 0 (default targets).
File C:\Users\pmckinney.NA\Documents\WindowsPowerShell\profile.ps1 cannot be lo
aded because the execution of scripts is disabled on this system. Please see "g
et-help about_signing" for more details.
At line:1 char:2
+ . <<<< 'C:\Users\pmckinney.NA\Documents\WindowsPowerShell\profile.ps1'
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
File C:\dev7\Source\DashPortal\DashboardController\..\..\..\Build\createReportI
nstallScript.ps1 cannot be loaded because the execution of scripts is disabled
on this system. Please see "get-help about_signing" for more details.
At line:1 char:87
+ C:\dev7\Source\DashPortal\DashboardController\..\..\..\Build\createReportInst
allScript <<<< -t C:\dev7\Source\DashPortal\DashboardController\..\..\..\Sourc
e\DashPortal\DashboardReports\ReportSetupScriptTemplate.sql -l C:\dev7\Source\D
ashPortal\DashboardController\..\..\..\Source\DashPortal\DashboardReports\Repor
tSetupReportList.xml -c C:\dev7\Source\DashPortal\DashboardController\..\..\..\
Source\DashPortal\Config
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
C:\dev7\Source\DashPortal\DashboardController\DashboardController.csproj(265,5): error MSB3073: The command "powershell
C:\dev7\Source\DashPortal\DashboardController\..\..\..\Build\createReportInstallScript -t C:\dev7\Source\DashPortal\Da
shboardController\..\..\..\Source\DashPortal\DashboardReports\ReportSetupScriptTemplate.sql -l C:\dev7\Source\DashPorta
l\DashboardController\..\..\..\Source\DashPortal\DashboardReports\ReportSetupReportList.xml -c C:\dev7\Source\DashPorta
l\DashboardController\..\..\..\Source\DashPortal\Config" exited with code 1.
Просто гадание: вы выполнили Set-ExecutionPolicy
в PowerShell x64, а в сборке работает x86 PowerShell?
Возможно, попробуйте Get-ExcutionPolicy в обеих оболочках.
Изменить: oops, я вижу, что вы уже включили скрипты. Это может иметь какое-то отношение к контексту, в котором работает MSBuild. Вы используете MSBuild в качестве учетной записи локальной службы?
Edit2: очистить сообщение об ошибке обманчиво. Там происходит что-то еще и ошибка политики выполнения, но не по ожидаемой причине. Возможно, как способ изолировать, попробуйте создать еще одну задачу MSBuild, которая работает с той же строкой, но с более короткими, жестко закодированными путями вместо /../../../
bonanza выше?