Как я могу прочитать свойство OutputDirectory из файла vcproj (2008) в сценарии оболочки?

Я пытаюсь написать скрипт-оболочку MSBuild, который создает vcproj (ну, решение, содержащее файлы vcproj), а затем копирует выходные данные конкретного файла vcproj в специальный каталог "package", который, в свою очередь, публикуется в общей папке. Мне нужно сделать это для нескольких конфигураций и платформ (Debug, Release, Win32, x64). В идеале я хотел бы иметь возможность прочитать "OutputDirectory" из файла vcproj для конкретной конфигурации / платформы, чтобы затем я мог скопировать его содержимое. С файлами csproj это просто, так как я могу "импортировать" файл csproj в мой скрипт-оболочку MSBuild, а затем прочитать свойство "OutputPath". К сожалению, я не могу импортировать файлы vcproj (для VS 2008) в сценарий MSBuild, так как они не совместимы с MSBuild, поэтому такой подход не работает.

Кто-нибудь знает, как я могу прочитать значение свойства "OutputDirectory" из файла vcproj? Please note that I do not want to use XPath and roll this myself, as the raw OutputDirectory property looks something like "$(ProjectDir)\bin\$(ConfigurationName)\$(PlatformName)". I want all those macros expanded for me, just as would be done when running vcbuild.

1 ответ

Вы можете извлечь OutputPath для каждой конфигурации в отдельных файлах свойств, таких какDebug.Properties, Release.Propertiesи т. д., а затем импортируйте соответствующую директиву в файлах сценариев vcproj и msbuild.

<Import Project="Debug.Properties" />

Или динамически зависит от конфигурации:

<Import Project="$(ConfigurationBasedPropertiesFile)" />

Установить значение свойства $(ConfigurationBasedPropertiesFile) учитывая текущую конфигурацию

Другие вопросы по тегам