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

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

Кто-нибудь знает, как я могу прочитать значение свойства "OutputDirectory" из файла vcproj?Обратите внимание, что я не хочу использовать XPath и прокручивать это сам, так как необработанное свойство OutputDirectory выглядит примерно как "$ (ProjectDir) \ bin \ $ (ConfigurationName) \ $ (PlatformName)".Я хочу, чтобы все эти макросы были расширены для меня так же, как и при запуске vcbuild.

1 Ответ

1 голос
/ 09 августа 2011

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

<Import Project="Debug.Properties" />

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

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

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

...