Проблема в том, что вы дозируете 2 продукта одновременно. Я имею в виду, что у вас есть заявления
%(SectionsToEncrypt.Section)
%(ConfigurationToBuild.FlavorToBuild)
В том же вызове задачи. Когда вы выполняете пакетную обработку более чем по одному элементу одновременно в одном и том же вызове задачи, они будут группироваться независимо. Вот почему вы указываете ошибку. Конфигурационный раздел '' ...
Если у вашего FlavorToBuild есть только одно значение, вам нужно вставить это свойство в свойство перед вызовом Exec, а затем использовать это свойство. Таким образом, ваш один лайнер будет преобразован в:
<PropertyGroup>
<_FlavToBuild>%(ConfigurationToBuild.FlavorToBuild)<_FlavToBuild>
</PropertyGroup>
<Exec Command="$(AspNetRegIis) -pef "%(SectionsToEncrypt.Section)" "$(DropLocation)\$(BuildNumber)\$(_FlavToBuild)\$(AnythingPastFlavorToBuild)" -prov "$(WebSiteRSACustomProviderName)""/>
Если у вас есть несколько значений для FlavorToBuild, то это более сложно. У вас будет 2 варианта:
- Жесткий код Exec более одного раза
- Использование целевого пакетирования с пакетным заданием для выполнения foreach / foreach
Пакетирование - один из самых запутанных элементов MSBuild. Я собрал несколько онлайн-ресурсов на http://sedotech.com/Resources#batching. Если вы хотите узнать больше, вы можете взять копию моей книги .