3

完成 BIML 脚本(使用 BIDS SQL Server 2008)创建 SSIS 包后,您只需右键单击 BIML 文件并单击生成 SSIS 包。

如何通过代码(例如 C# 或 SQL)生成 SSIS 包?我可以想象 BimlEngine.dll 的某种 shell 脚本,例如 BimlEngine.dll -"myFileServer\myBimlScript", "generate SSIS packages"

我找到了这个 c# 代码项目 https://github.com/jgsato/BimlGen

特别是这个文件 https://github.com/jgsato/BimlGen/blob/master/BimlGenerator.cs

我只是不确定如何使用它。

谢谢你的帮助。

4

2 回答 2

6

你链接的代码是一种基于SMO生成Biml、xml的机制。

您的意图是重现右键单击/生成 SSIS 包,从而将 Biml XML 转换为 DTSX 的 XML。为此,您需要了解BidsHelper是如何做到的。在BimlExpandPlugin类中,您会发现特定于版本的调用BidsHelper.CompileBiml

ValidationReporter validationReporter = BidsHelper.CompileBiml(
    typeof(AstNode).Assembly, 
    "Varigence.Hadron.BidsHelperPhaseWorkflows.xml", 
    "Compile", bimlScriptPaths, 
    new List<string>(), 
    tempTargetDirectory, 
    projectDirectory, 
    SqlServerVersion.SqlServer2008, 
    SsisVersion.Ssis2012, 
    SsasVersion.Ssas2008, 
    DeployPackagesPlugin.IsLegacyDeploymentMode(project) ? 
        SsisDeploymentModel.Package : 
        SsisDeploymentModel.Project);

需要注意的是,Varigence 的人员将 BidsHelper 的功能作为其产品Mist的子集提供。其中之一是跳过 XML 混搭,只使用本机 .NET 对象来创建和描述 SSIS 对象。如果您想使用 .NET 对象,则需要购买许可证。

于 2014-03-17T15:23:20.000 回答
0

我认为这行不通。我试过了,但正如你在下面的 SO 线程中看到的那样,它没有用。

以编程方式展开 BIML 文件

于 2015-06-17T15:18:43.340 回答