例如。我想每次调用这些脚本传递差异参数:
<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>
你可以通过使用MSBuild任务 with 特性.
<!-- 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)