Событие после сборки Dotfuscator завершено с кодом 1

Я пытаюсь автоматически расставить свои проекты во время процесса сборки в TFS.

Я создал «Событие после сборки» в свойствах проекта следующим образом:

"C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\dotfuscator.exe" /in:"$(TargetPath)" /out:"$(TargetDir)Obfuscated\" /honor:on /strip:on /prune:off /rename:off /suppress:on /mapout:"$(TargetFileName).xml" /debug:pdb xcopy /S /R /Y "$(TargetDir)Ofscated\$(TargetFileName)" "$(TargetDir )"

Когда это событие начинается, я получаю следующую ошибку:

«C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (3717): команда «C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\dotfuscator.exe» /in:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\ProcessBookmarks.exe" /out:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\Obfuscated\ " /honor:on /strip:on /prune:off /rename:off /suppress:on /mapout:"ProcessBookmarks.exe.xml" /debug:pdb xcopy /S /R /Y "C:\Builds\5\ BIMS\Sandbox Branch Private Test Manual Build\Binaries\Obfuscated\ProcessBookmarks.exe" "C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\"" завершен с кодом 4."

Я провел часы исследований, экспериментов и гугления по этому вопросу и не смог найти объяснение ошибки. Когда я запускаю сборку локально, команда работает нормально. Любая помощь будет принята с благодарностью

Редактировать: я предпринял еще несколько попыток заставить dotfuscator работать через командную строку. Я убедился, что команда dotfuscator работает сама по себе локально, но когда я запускаю определение сборки, командная строка dotfuscator завершается с кодом 1 следующим образом, и я понятия не имею, как это исправить:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (3717): команда "C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\dotfuscator.exe" / in:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\ProcessBookmarks.exe" /out:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\Obfuscated" / honor:on /strip:on /prune:off /enhancedOI:on /suppress:on /mapout:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\ProcessBookmarks.exe.xml" /debug: pdb" завершился с кодом 1.

У меня все еще есть проблемы с тем, чтобы заставить dotfuscator работать в моих автоматизированных сборках, есть ли у кого-нибудь пример того, как они это делают. Я был бы очень признателен за ответ на этот вопрос.


person Aaron Davis    schedule 22.06.2012    source источник
comment
Можете ли вы поделиться тем, что показано в вашем окне вывода?   -  person Morten Frederiksen    schedule 23.06.2012
comment
Я удалил команду xcopy и попытался запустить только команду dotfuscator. Команда работает локально и правильно расставляет файлы по точкам и помещает их в правильную папку, однако, когда я запускаю фактическое определение сборки, я получаю выход с кодом 1. В файле журнала сборки или окне вывода нет дополнительной информации, которую я мог бы предоставить.   -  person Aaron Davis    schedule 26.06.2012


Ответы (1)


Я бы предложил использовать копию, а не xcopy, чтобы скопировать ваши запутанные DLL в выходную папку.

Причина, по которой я предлагаю это, заключается в том, что я провел день, пытаясь сделать то же самое, что и вы, за исключением того, что в моем решении есть проекты Dotfuscator (*.dotfuproj) (вместо вызова Dotfuscator через командную строку на этапе пост-сборки), и я был попытка скопировать вывод Dotfuscator на этапе пост-сборки проектов Dotfuscator.

Когда я использовал xcopy, мне не удалось скопировать файл без каких-либо предупреждений, ошибок или сообщений. Это просто продолжалось, как будто ничего не произошло — ни положительных, ни отрицательных результатов. Ничего такого.

Выполнение команды xcopy через командную строку работало нормально - ничего не понимало, почему xcopy не работает и почему я не получил сообщения о том, почему. [Если кто-нибудь знает, почему это так, я хотел бы знать]

При копировании вам нужно указать файл назначения, а не только каталог, как указано выше в вашей команде xcopy.

[Я бы добавил это как комментарий к вашему вопросу, но, похоже, у меня нет возможности/репутации (?)]

person Liam    schedule 12.12.2012
comment
Хорошо, спасибо за ответ. С тех пор я перешел к нескольким другим решениям, ни одно из которых не было идеальным. Я попытаюсь зайти и посмотреть, решит ли это проблему. Большое спасибо! - person Aaron Davis; 13.12.2012