我正在经历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吗?
答案 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>
哪个带领我回到了连接。