2015-02-20 10 views
1

У меня есть простое решение, которое содержит рядом с проектами классов также проекты настройки (расширение установлено в VS: vdproj).Ошибка командной строки Devenv

Облицовочные странное поведение делает следующее:

  1. Открыть решение в VS2013 -> Стартовое перестраивать -> нет ошибок.

  2. Создать небольшой командный файл:

    CALL "%VS120COMNTOOLS%vsvars32.bat" 
    
    DEVENV "D:\Source\Solution.sln" /Rebuild "Debug|Any CPU" 1>NUL 2>&1 
    
    IF ERRORLEVEL 1 GOTO Error 
    
    IF ERRORLEVEL 0 GOTO Yeah 
    
    :Error 
    COLOR c 
    Echo. 
    Echo end %date% - %time% 
    Echo Failed! 
    PAUSE 
    
    :Yeah 
    
    Echo. 
    
    PAUSE 
    
  3. Выполнить этот пакетный файл и Равен не равна нулю

  4. изменилась внутри пакетного файла действие Devenv на следующее:

    DEVENV "D:\Source\Solution.sln" /Clean "Debug|Any CPU" 1>NUL 2>&1 
    
    
    DEVENV "D:\Source\Solution.sln" /Build "Debug|Any CPU" 1>NUL 2>&1 
    
  5. Запустить этот командный файл, а уровень ошибок равен нулю

Странно то, что без перенаправления вывода я также не получаю никаких ошибок при запуске пакета с активным восстановлением.

Любые предложения, почему у меня другое поведение?

ответ

0

В первом случае вы делаете перестроить. Во втором случае вы делаете «Чистое» и «Сборка». Временно удалите 1> NUL 2> & 1, и вы сможете увидеть, что такое ошибка.

Возможно, вы немного упростите ситуацию и сохраните результаты, подобные этому. Затем вы можете просмотреть файл журнала, прежде чем «нажмите любую клавишу, чтобы продолжить», если хотите.

CALL "%VS120COMNTOOLS%vsvars32.bat" 
SET "LogFile=%Temp%\BuildLog.txt" 
IF EXIST "%LogFile%" DEL /F /Q "%LogFile%" 

DEVENV "D:\Source\Solution.sln" /Rebuild "Debug|Any CPU" 1>"%LogFile%" 2>&1 
IF ERRORLEVEL 1 (
    COLOR c 
    Echo. 
    Echo end %date% - %time% 
    Echo Failed! View log file %LogFile% if you prefer. Then 
) 

PAUSE 
IF EXIST "%LogFile%" DEL /F /Q "%LogFile%" 
+0

У вас уже есть ошибки и ошибки. Вот почему я размещаю его здесь. Будет обновлен мой вопрос, чтобы подчеркнуть это. –

+0

ERROR LEVEL, вероятно, просто указывает, что ваша командная строка верна/неверна и может фактически не отражать результат сборки. – RGuggisberg

+0

Это очень плохая форма любого приложения для возврата errorlevel 0 при обнаружении ошибки при выполнении командной строки данной операции. – Nyerguds

 Смежные вопросы

  • Нет связанных вопросов^_^