Вы не указываете, с какой версией Visual Studio вы работаете. По памяти ответ не сильно меняется, но я отвечу за Visual Studio 2015, потому что это то, что мне пригодилось.
Один из способов изучить значения макросов, которые должны работать во всех версиях Visual Studio, — использовать команду ECHO
. Измените свой скрипт после сборки, чтобы он был
echo TargetPath: "$(TargetPath)"
и вы должны иметь возможность прочитать значение макроса в окне вывода при построении проекта. Однако в большинстве современных версий Visual Studio трюк Echo
не нужен.
На странице свойств Событие после сборки щелкните раскрывающийся список в конце поля Командная строка, а затем нажмите ‹ Изменить...>. В Visual Studio 2015 последующее диалоговое окно покажет вам командную строку (строки) и оцененное значение, чтобы вы могли видеть командную строку (строки) с развернутыми макросами.
Также есть кнопка Макросы>>. Нажмите на эту кнопку, и вы получите диалоговое окно, в котором показано имя каждого макроса и его значение. Текстовое поле в верхней части списка позволяет отфильтровать результаты по тем, которые содержат последовательность символов.
$(TargetPath)
описывается здесь как "Абсолютный путь к основной выходной файл сборки (определяемый как диск + путь + базовое имя + расширение файла)". На самом деле это означает значение свойств Выходной каталог, Целевое имя и Целевое расширение в разделе Общие. страница свойства.
Инструмент LIB описан здесь. Чтобы получить больше информации о запуске LIB, вы можете добавить параметр /VERBOSE. Вы также можете удалить параметр /NOLOGO, чтобы по крайней мере получить подтверждение того, что вы используете LIB (и используете правильную версию LIB).
Трудно сказать, что на самом деле означает «ничего не делает». Я предполагаю, что наиболее вероятными сбоями являются либо создание файла lib, но не там, где вы ожидаете; или в $(ProjectDir)\Source нет файлов obj.
Один из способов изучить этот последний случай — изменить событие после сборки на
dir "$(ProjectDir)\Source\*.obj"
а затем проверьте выходные данные сборки, чтобы увидеть, есть ли в списке файлы obj. Если в каталоге нет файлов .obj, окно вывода покажет что-то похожее на
1> Directory of C:\TestPrograms\vc.net.2015\VCConsole
1>
1> File Not Found
и окно списка ошибок покажет, что команда dir завершилась с кодом 1.
person
Frank Boyne
schedule
27.03.2017