При переработке нашего процесса развертывания я перешел к использованию проекта MSBuild вместо наших существующих пакетных файлов. Все основные элементы на месте, и я хотел вырезать один или два шага, но столкнулся с проблемой.
Я создаю свойство с именем OutputPath, используя задачу CombinePath, и, хотя я могу без проблем получить к нему доступ после его создания, я не знаю, как использовать его в своих интересах. Учитывать:
<CombinePath BasePath ="$(DeployFolderRoot)" Paths ="$(DeployReleaseFolder)$(ReleaseFolderFormatted)" >
<Output TaskParameter ="CombinedPaths" ItemName ="OutputFolder"/>
</CombinePath>
<MakeDir Directories="@(OutputFolder)" />
<MakeDir Directories="@(OutputFolder)\Foo" />
<MakeDir Directories="@(OutputFolder)\Bar" />
Команды 2 и 3 терпят неудачу, потому что я ссылаюсь на массив и пытаюсь объединить его со строкой. Создание свойства и присвоение ему @(OutputFolder) просто приводит к другой группе элементов, а не к свойству, на которое я могу ссылаться с помощью средства доступа $. У меня есть уродливый обходной путь, но я хотел бы немного прояснить это.
Спасибо,
-Хосе