2016-06-23 1 views
1

J'ai une solution assez volumineuse et dans l'un des fichiers de projet de Post Build, j'exécute un fichier batch.C# Post Build Batch renvoie le fichier '' ''

dont le contenu sont:

echo %DevEnv% 
echo %2 
echo %1App-%DevEnv%.config 
echo %1App.config 
attrib -r %1App.config 
copy %1App-%DevEnv%.config %1App.config 

rem We are also copying the machine specific config file to ECIHost too 
echo %1 
cd %1 

echo attrib -r ..\ECIHost\ECIHost\App.config 
attrib -r ..\ECIHost\ECIHost\App.config 

echo copy App-%DevEnv%.config ..\ECIHost\ECIHost\App.config 
copy App-%DevEnv%.config ..\ECIHost\ECIHost\App.config 

La construction Post est:

"$(ProjectDir)CopyAppConfig.bat" "$(ProjectDir)" %DevEnv% >  "c:\build.txt" 

J'ai aussi essayé

cd "$(ProjectDir)" 
CopyAppConfig.bat "$(ProjectDir)" %DevEnv% > "c:\build.txt" 

deux renvoient la même ligne:

'´╗┐' is not recognized as an internal or external command, operable program or batch file. 

Lorsque j'exécute le fichier batch à partir de la console, il résonne et fait tout avec succès.

Lorsque je redirige vers un fichier, je reçois le même résultat que dans la fenêtre Sortie de ma construction.

CopyAppConfig.bat > c:\temp\output.txt 

Dans le fichier sortie.txt je reçois la sortie de la commande, mais dans la fenêtre de la console où j'entrez la commande je reçois la même erreur.

Ce n'est pas ma machine, tous les développeurs ont le même problème.

Comment puis-je résoudre ce problème?

+2

Cela ressemble à l'encodage est erroné ... Je * pense * que ce devrait être un UTF-8 avec un fichier BOM. –

+0

Il est déjà UTF-8 –

+0

Vous avez frappé le clou sur la tête, il devait être ANSI –

Répondre

2

Cela ressemble à une erreur de codage.

Les fichiers batch doivent être ASCII ... et vous pouvez avoir un UTF-8 avec BOM.

(La nomenclature est un octet d'ordre marque -. Un en-tête en option qui indique si le fichier est codé big endian ou little endian Tout ne gère correctement ces fichiers.)