3

J'ai un poste à construire conditionnelle qui ressemble à ceci:Construire Visual Studio Poster n'aime pas mon conditionnelle

if $(ConfigurationName)==Release 
(
    echo Update $(TargetName) to be non conflicting 
    "$(SolutionDir)ILMerge\RummageTypeRenamer.exe" -f XamlGeneratedNamespace.GeneratedInternalTypeHelper -t XamlGeneratedNamespace.GeneratedInternalTypeHelper$(TargetName) $(TargetName).dll 
    del $(TargetName).dll 
    ren $(TargetName).Runmage.dll $(TargetName).dll 
) 

Cela fonctionne bien si j'enlève la condition et les parens. Mais si je le lance en l'état, je reçois l'erreur:

The syntax of the command is incorrect.

La déclaration entière imprime ensuite, et l'aspect conditionnel bon:

if Release==Release

Pourquoi ne pas Visual Studio comme mon conditionnelle?

+0

lot prévu les paren thèse sur la même ligne que le 'IF' – jeb

+0

(+1) pour montrer comment utiliser RummageTypeRenamer en post-construction :). Je sais que cela est hors de la portée du sujet, mais les gens sont toujours capables de faire une recherche avec la chaîne de recherche "RummageTypeRenamer post-build". Pourquoi avez-vous besoin de cet assemblage uniquement pour le mode Release? Pourquoi ne pas déboguer? Si vous voulez je peux poser une question distincte et notifier ici. Merci. –

+0

@AndreyK. - Désolé de dire que je ne me souviens pas pourquoi j'avais besoin de ça. – Vaccano

Répondre

2

trouvé la solution ici: How to run Visual Studio post-build events for debug build only (voir ce commentaire: J'ai trouvé que toute la commande doit être sur une ligne ou que vous obtiendrez « quittais avec le code 255 »)

donc votre message construire devrait ressembler à:

if $(ConfigurationName)==Release goto _release 

    goto _exit 

    :_release 

    echo Update $(TargetName) to be non conflicting 
    "$(SolutionDir)ILMerge\RummageTypeRenamer.exe" -f XamlGeneratedNamespace.GeneratedInternalTypeHelper -t XamlGeneratedNamespace.GeneratedInternalTypeHelper$(TargetName) $(TargetName).dll 
    del $(TargetName).dll 
    ren $(TargetName).Runmage.dll $(TargetName).dll 

    :_exit 
0

Essayez K & style R parens:

if $(ConfigurationName)==Release (
    echo Update $(TargetName) to be non conflicting 
    ... 
) 
Questions connexes