Re: Кавычки в параметрах post-build event
От: Vain Россия google.ru
Дата: 21.09.07 11:54
Оценка: 4 (1)
Здравствуйте, Блондинко, Вы писали:

Б>Post-build event:

Б>
Build.exe "$(ProjectDir)" "$(ProjectPath)" "(TargetPath)"

Б>папка проекта D:\Solution path\Project path\
Б>в args приложению прилетает приблизительно следующее
Б>args[0]:
Б>D:\Solution path\Project path" D:\Solution
Б>args[1]:
Б>path\
Б>обратите внимание, что в $(ProjectDic) имя директории проекта должно быть со слешем на конце, а он почему-то заменился на кавычку.
Да, есть такая подстава от МС, проблема как ни странно в cmd.exe.
Там $(ProjectDir) просто заменяется на %~dp0, т.к. область CommandLine является областью для текса bat-файла, ну а отсюда и "наследственность".
При выводе "%~dp0" как:
myecho.bat "%~dp0" I am invisible!

где myecho.bat:
@echo off
echo "%~1" "%~2" "%~3" "%~4"

Подвоха не будет, но стоит заменить echo на какой-нить printf.exe, как arg[0] станет равным %~dp0" I am invisible!.
Проблема в том, что cmd.exe неправильно парсит параметры приложений и скриптов, и конструкция вида blablabla\ фактически "комментирует" закрывающую кавычку.
Ну, а воркэраунд простой, "комментировать" последний бак-слеш blablabla\\, либо, если возможно, использовать простой слеш — blablabla/.
%~dp0 в конце всегда оставляет бак-слеш, поэтому к ниму воркэраунд только один.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Кавычки в параметрах post-build event
От: Блондинко Беларусь  
Дата: 21.09.07 07:56
Оценка:
Post-build event:
Build.exe "$(ProjectDir)" "$(ProjectPath)" "(TargetPath)"


папка проекта D:\Solution path\Project path\

в args приложению прилетает приблизительно следующее
args[0]:
D:\Solution path\Project path" D:\Solution
args[1]:
path\

обратите внимание, что в $(ProjectDic) имя директории проекта должно быть со слешем на конце, а он почему-то заменился на кавычку.

объясните мне, пожалуйста, что происходит.
Re: Кавычки в параметрах post-build event
От: Left2 Украина  
Дата: 21.09.07 08:10
Оценка:
Может это слегка оффтоп, но лично я пришёл к тому что не пользуюсь pre- и post- ивентами из-за их непомерной глюкавости.
Если нужно сделать что-то после билда проекта — делаю ещё один проект, который зависит от основного, в этот проект добавляю exe-файл (ну или dll) из основного проекта и прописываю ему custom build step.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[2]: Кавычки в параметрах post-build event
От: Блондинко Беларусь  
Дата: 21.09.07 08:29
Оценка:
Здравствуйте, Left2, Вы писали:

L>Если нужно сделать что-то после билда проекта — делаю ещё один проект, который зависит от основного, в этот проект добавляю exe-файл (ну или dll) из основного проекта и прописываю ему custom build step.


такое решение мне не подходит, потому что речь идет о разработке тула автоматической генерации, который должен легко встраиваться в любой проект теми, кто его будет юзать. новый проект в качестве "легкого" решения не покатит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.