3

E.g. I want to call these scripts passing diff params each time:

<ItemGroup> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Tables\*.sql" /> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Functions\*.sql" /> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Views\*.sql" /> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\ForeignKeys\*.sql" /> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\StoredProcedures\*.sql" /> <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Data\*.sql" /> </ItemGroup> 

1 Answer 1

2

You could to that by using MSBuild Task with Properties.

<!-- Dont itemize sql files now, if you want to differenciate the task operations --> <ItemGroup> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Tables" /> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Functions" /> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Views" /> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\ForeignKeys" /> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\StoredProcedures" /> <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Data" /> </ItemGroup> <Target Name="MainTask"> <MSBuild Projects="$(MSBuildProjectFile)" Properties="SqlDir=%(SqlDirs.Fullpath)" Targets="RecursivelyCalledTask"> <Output ItemName="ProjSources" TaskParameter="TargetOutputs"/> </MSBuild> </Target> <Target Name="RecursivelyCalledTask"> <!-- We create here the SqlFiles items based on SqlDir--> <CreateItem Include="$(SqlDir)\*.sql"> <Output ItemName="SqlFiles" TaskParameter="Include"/> </CreateItem> <Message Text="SqlFiles -> @(SqlFiles)"/> </Target> 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.