msbuild вызывает скрипт PowerShell под Windows 7 получает ошибку подписи - PullRequest
14 голосов
/ 14 января 2010

У нас есть скрипт сборки powershell, который вызывает другие скрипты, что создает проблемы в 64-битной Windows 7 Работает нормально под XP. Я запустил set-executepolicy для 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.

Ответы [ 2 ]

23 голосов
/ 14 января 2010

Просто угадайте: вы запустили Set-ExecutionPolicy в вашем x64 PowerShell, а при сборке запускается x86 PowerShell?

Возможно попробуйте Get-ExcutionPolicy в обеих оболочках.

0 голосов
/ 14 января 2010

Редактировать: упс, я вижу, вы уже включили сценарии. Возможно, это связано с контекстом, в котором работает MSBuild. Вы используете MSBuild в качестве учетной записи локального сервиса?

Edit2: ясно, что сообщение об ошибке обманчиво. Происходит что-то еще, и выдается ошибка политики выполнения, но не по ожидаемой причине. Возможно, как способ изолировать, попробуйте создать другую задачу MSBuild, которая запускает ту же строку, но с более короткими, жестко закодированными путями вместо /../../../ bonanza выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...