2010-10-11 6 views
2

J'ai un problème sur mon serveur de construction (2003) avec msbuild. J'ai réduit le problème à la tâche exec dans le fichier csproj, que j'ai extrait dans un csproj très simple (ci-dessous), et toujours pas de joie, voir l'erreur 'C: \ Documents'. Tout cela fonctionne sans problèmes sur ma machine locale.msbuild/csproj exec tâche problème

Je pense qu'il y a un problème avec une variable d'environnement, mais je ne peux pas le comprendre. Aucun conseil?

Entrée

 

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <Target Name="BeforeBuild"> 
    <Exec Command="echo hello world" /> 
    </Target> 

</Project> 
 

MSBuild sortie

 
D:\cc.net working\source\WebBase>msbuild ExecIssue.csproj 
Microsoft (R) Build Engine Version 4.0.30319.1 
[Microsoft .NET Framework, Version 4.0.30319.1] 
Copyright (C) Microsoft Corporation 2007. All rights reserved. 

Build started 11/10/2010 12:37:50. 
Project "D:\cc.net working\source\WebBase\ExecIssue.csproj" on node 1 (default t 
argets). 
BeforeBuild: 
    echo hello world 



'C:\Documents' is not recognized as an internal or external command, 
    operable program or batch file. 



D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4): error MSB3073: The comma 
nd "echo hello world" exited with code 1. 
Done Building Project "D:\cc.net working\source\WebBase\ExecIssue.csproj" (defau 
lt targets) -- FAILED. 


Build FAILED. 

"D:\cc.net working\source\WebBase\ExecIssue.csproj" (default target) (1) -> 
(BeforeBuild target) -> 
    D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4): error MSB3073: The com 
mand "echo hello world" exited with code 1. 

    0 Warning(s) 
    1 Error(s) 

Time Elapsed 00:00:00.17 

+0

IIRC, l'exécutable et les paramètres sont séparés. – leppie

+0

Exec appelle cmd.exe, et il semble échouer en quelque sorte; pouvez-vous cmd normalement? btw votre exemple fonctionne bien ici – stijn

+0

@stijn oui, pas de problème de cmd.exe à tous. – jasper

Répondre

1

Je courrais en mode de diagnostic et de l'envoyer à un fichier, puis recherchez C: \ Documents dans le fichier. Peut-être qu'il utilise "C: \ Documents and settings" dans certains paramètres de chemin sans les citer. Le mode de diagnostic imprime la plupart des propriétés, groupes d'éléments, variables d'environnement, etc. Espérons qu'il affichera toutes les propriétés utilisées par la tâche exec, puisque vous ne fournissez que le paramètre de la commande, il utilise des valeurs par défaut pour le reste.

msbuild ExecIssue.csproj /v:Diagnostic > buildout.txt 
+0

c'était utile pour voir les chemins, merci pour le pourboire, mais malheureusement pas de joie. ne peut pas voir toute différence évidente entre la construction cassée, et celui sur la machine locale. @ Alli'm va le classer comme un problème de serveur, et réinstaller la machine à ce stade, car rien d'évident ne semble sortir de là. Merci les gars pour votre aide – jasper

Questions connexes