2010-01-14 16 views
14

Tenemos un script de compilación powershell que llama a otros scripts que me está causando problemas en Windows 7 de 64 bits. Funciona bien bajo XP. He ejecutado set-executionpolicy a RemoteSigned (y también lo he probado con Bypass y sin restricciones). Puedo extraer la línea de comando del mensaje de error y ejecutarlo y todo funciona bien.msbuild llamando al script de powershell bajo Windows 7 obtiene el error de firma

Los errores de compilación se ven terribles aquí; pero los incluyo de todos modos para que estén completos.


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. 
+0

Para maximizar el uso de una tarea de script de MSBuild, puede valer la pena obtener un certificado para firmar, esto evitará la necesidad de habilitar scripts no firmados en cada sistema de compilación. – Richard

Respuesta

23

sólo una suposición: Se ha ejecutado en su Set-ExecutionPolicyx64 PowerShell y la acumulación corre el x 86 PowerShell?

Quizás intente Get-ExcutionPolicy en ambos proyectiles.

+0

¡Eso es exactamente! ¡Muchas gracias! –

+0

Me alegro de haber podido ayudar ... me he encontrado varias veces con x64/x86 – Filburt

0

Editar: Vaya, veo que ya habilitó guiones. Posiblemente tenga algo que ver con el contexto en el que se está ejecutando MSBuild. ¿Está ejecutando MSBuild como una cuenta de servicio local de algún tipo?

Edit2: Está claro que el mensaje de error es engañoso. Está sucediendo algo más y se está lanzando el error de la política de ejecución, pero no por el motivo esperado. Tal vez como una forma de aislar, intente crear otra tarea MSBuild que ejecute la misma línea pero con rutas de acceso más cortas y codificadas en lugar de la bonanza /../../../ anterior.

+0

Tengo Set-ExecutionPolicy para RemoteSigned en este momento. También probé Unrestricted and Bypass sin suerte. –

+0

Sí mi respuesta mal, editada. Para el registro, no tengo idea de lo que está sucediendo :) –

+0

En realidad, estabas muy cerca. Ver la respuesta de Filburt. –

Cuestiones relacionadas