Comment dois-je effectuer le EXEC tâche dans une “boucle” avec MSBuild ItemGroups?

Comment dois-je effectuer le EXEC tâche dans une "boucle" avec MSBuild ItemGroups?

Au lieu de répéter cette commande, comme suit:

    <Exec ContinueOnError="false" Command="sqlcmd -S $(ServerName) $(SqlServerUser) -d $(DbName) -v TableName=%22account%22 -i data\add_sql_cache.sql -b" />
    <Exec ContinueOnError="false" Command="sqlcmd -S $(ServerName) $(SqlServerUser) -d $(DbName) -v TableName=%22services%22 -i data\add_sql_cache.sql -b" />
    <Exec ContinueOnError="false" Command="sqlcmd -S $(ServerName) $(SqlServerUser) -d $(DbName) -v TableName=%22servicesGroup%22 -i data\add_sql_cache.sql -b" />
    <Exec ContinueOnError="false" Command="sqlcmd -S $(ServerName) $(SqlServerUser) -d $(DbName) -v TableName=%22servicesCategory%22 -i data\add_sql_cache.sql -b" />

Je serais plutôt de définir un ItemGroup et exécuter simplement une "boucle". J'ai la ItemGroup bas:

<ItemGroup>
    <CachedTables Include="account" />
    <CachedTables Include="services" />
    <CachedTables Include="servicesGroup" />
    <CachedTables Include="servicesCategory" />

Mais en raison de MSBuild est étonnamment peu intuitive de la syntaxe, je n'ai aucune idée de la façon d'effectuer le Exec tâche dans une boucle avec le ItemGroup ci-dessus comme une entrée.

  • Ma réponse à cette question a été supprimé, mais je tiens à préciser que mon expérience depuis la rédaction de cette question a conduit à me sentir assez fortement que c'est une mauvaise idée: vous devez utiliser un outil comme Psake ou gulp à faire des choses comme ça.
InformationsquelleAutor Josh Kodroff | 2011-05-17