65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义 MSBuild 任务:自动化报表和数据库部署

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.94/5 (7投票s)

2006 年 6 月 22 日

viewsIcon

77267

downloadIcon

461

使用这些自定义 MSBuild 任务自动化 Reporting Services 报告部署和脚本以及数据库任务。

Sample Image - CustomMSBuildTask_RS.jpg

引言

这个库将 RS.exe 工具和 OSQL.exe 工具封装到自定义 MSBuild 任务中,以便您可以自动化 Reporting Services 报告和脚本部署,以及 SQL Server 对象脚本到 MSBuild 项目中。Osql 自定义任务基于 Joey Benninghove 在他的 博客 上找到的示例。

您可以通过扩展/继承 Task 基类或实现 ITask 接口来创建 MSBuild 的自定义任务。 欢迎使用源代码,并请发送任何评论或改进意见给我。

用法

要使用其中一项任务,只需创建一个基于 XML 的 MSBuild 项目文件,如下所示,并使用 MSBuild.exe 命令运行它

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="DeployReportCatalog" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile=
  "C:\Projects\Silvaware.MSBuild.Tasks\bin\Debug\Silvaware.MSBuild.Tasks.dll" 
  TaskName="Rs" />

 <PropertyGroup>
    <SqlToolsFolder>C:\program files\microsoft sql server\90\Tools\Binn
    </SqlToolsFolder>  
    <RsTool>$(SqlToolsFolder)\rs.exe</RsTool>
    <TargetReportServer>https:///ReportServer</TargetReportServer>
</PropertyGroup>

 <ItemGroup>
     <TargetItems Include="**\*.rss" />
 </ItemGroup>

 <Target Name="DeployReportCatalog">   
     <Rs RsPath="$(RsTool)" InputFile="@(TargetItems)" 
         ServerURL="$(TargetReportServer)" WaitForExit="true" />
 </Target>

</Project>

上面的示例递归地执行此项目中子目录中找到的所有 Reporting Services 脚本文件 (.rss)。 这些 .rss 文件可以包含 VB.NET 代码来部署报告 RDL、数据源、创建文件夹、角色、分配安全权限等。

RS.exeOSQL.exe 工具可以从命令行接收的所有参数/参数都已作为公共属性暴露在自定义任务中,例如上述示例中使用的 RsPathInputFile 属性。

祝您 MSBuild 愉快!

© . All rights reserved.