Biml书第3章,无法通过BimlExpress 2018从BIML生成SSIS包

时间:2018-07-24 06:41:19

标签: biml

我正在经历The BIML Book。 我在第90页第3章中(基于我的PDF,从APress购买)。

我正在使用SSDT / Visual Studio 2013(目标SSIS版本:2014) BIML Express 2018

我已经手动排查了3个BIML文件:

1-2-CreateEnvironment.biml
1-2-CreateBimlTableObject.biml
x-2-CreateLoadPackage.biml

我已经完成了构建1,以生成(并随后执行)DeployTable.dtsx文件。

我正在尝试获取第90页底部和图3-34中描述的所有登台加载程序包。

问题在于,软件包永远不会生成。它们永远不会出现在我的解决方案中。

BIML编译器输出窗口显示:

Expanding Biml
Biml expansion completed. 

VS中没有错误。 我尝试以管理员身份运行VS(认为可能是写入磁盘的权限问题) 我添加了另一个BIML文件,用于将BIML编译器详细信息记录到文件中。

BIML如下:

<#@ template tier="1" #>
<#@ import namespace="Varigence.Utility.Logging" #>
<#
var loggingManager = new LoggingManager(Logging.LoggingMode.File) {
IsEnabled = true, LogFilePath = @"C:\temp\log.txt" };
LoggingManager.RegisterDefaultLoggingManager(loggingManager);
#>

只是想知道我在做什么错,如果有的话。我需要使用VS 2017吗?

1 个答案:

答案 0 :(得分:0)

最后!开始使用BIML及其工具。 IMO是另一种范式。

我能够解决此问题。它与无效的连接字符串参数有关。经典的“多余空间/缺少空间”问题。

除此以外,最好的事情是,我能够使用BIML文件中的Intellisense在BIML预览窗格中发出结果,这表明Connection.GetDatabaseSchema()返回的表节点集合Count()的值为0(请参见下面以<!-“开头的行)。

<#@ template tier="20" #>
    <#@ import namespace="Varigence.Biml.CoreLowerer.SchemaManagement" #>
    <#@ code file="DebuggerUtilities.cs" #>
    <#
    var sourceConnection = RootNode.OleDbConnections["Source"];
    var includedSchemas = new List<string>{"HumanResources","Person","Production","Purchasing","Sales"};
    var importResult = sourceConnection.GetDatabaseSchema(includedSchemas, null,ImportOptions.ExcludeForeignKey | ImportOptions.ExcludeColumnDefault |ImportOptions.ExcludeViews);
    #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Tables>
        <!--<#=importResult.TableNodes.Count()#>-->
        <# foreach (var table in importResult.TableNodes) { #>
        <Table Name="<#=table.Name#>" SchemaName="Staging.<#=table.Schema#>">
            <Columns>
                <# foreach (var column in table.Columns) { #>
                <#=column.GetBiml()#>
                <# } #>
                <Column Name="LoadDateTime" DataType="DateTime2"/>
            </Columns>
        </Table>
        <# } #>
    </Tables>
</Biml>

所以预览正在发出

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
  <Tables>
    <!--0-->
  </Tables>
</Biml>

哪个带领我回到了连接。