2010-08-31 5 views
0

Je mis un événement prebuild à:événement pré-génération échoue

$(TargetDir)MyConsoleApp 

Mais quand je lance l'application que je reçois la sortie suivante:

------ Build started: Project: BlahBlahBlah, Configuration: Debug x86 ------ 

'd:\users\user\documents\visual' is not recognized as an internal or external 
command, operable program or batch file. 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(902,9): 
error MSB3073: The command "d:\users\user\documents\visual studio 2010\Projects\ 
BlahBlahBlah\BlahBlahBlah\bin\Debug\MyConsoleApp" exited with code 9009. 

========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ========== 

Le fichier MyConsoleApp à la cible spécifiée existe-t- et fonctionne correctement à partir de Windows Explorer.

Répondre

2

La variable TargetDir contient des espaces dans votre cas. Vous avez besoin de mettre des guillemets autour de la commande:

"$(TargetDir)MyConsoleApp" 
+0

Comment inclure des arguments de ligne de commande? – Shimmy

+1

@Shimmy vous les ajoutez après la commande, en dehors des citations – jeroenh

2

Pas tout à fait vrai, je recevais la même erreur et mes paramètres n'a pas eu un seul caractère d'espacement entre les deux. Je crois que Visual Studio est simplement perplexe avec ce genre de choses et se demande pourquoi cela n'a pas été amélioré à cet égard.

Dans tous les cas, je travaillais autour de lui en créant un fichier batch, puis d'appeler ce fichier batch de l'événement BUILD post avec des paramètres de position de fichier batch:

MyPostBuildCommands.bat $ (SolutionDir) $ (ProjectDir) $ (OutDir)