我正在尝试使用 BIML <ScriptComponentProject> 标签创建一个简单的流程,但它对我不起作用!
如果我手动创建数据流,那么它工作得很好!
- 我的数据流有:SRC > SCRIPT-COMPONENT > TGT
- 我添加的唯一逻辑是为每个传入行计算一个行号(暂时保持逻辑绝对简单)
执行手动解决方案时:
- 顺序行号存储在 TGT 表中 (test_np_02)
- 伟大的!
但是,当我尝试使用附加的 BIML 创建完全相同的包时,出现以下错误:
SSIS 输出日志:
Error 0 The namespace '<global namespace>' already contains a definition for 'Input0Buffer'. ...\Designer\BufferWrapper.cs 14 14
Error 0 The namespace '<global namespace>' already contains a definition for 'UserComponent'. ...\Designer\ComponentWrapper.cs 12 14
Error 0 The namespace '<global namespace>' already contains a definition for 'Connections'. ...\Designer\ComponentWrapper.cs 49 14
Error 0 The namespace '<global namespace>' already contains a definition for 'Variables'. ...\Designer\ComponentWrapper.cs 60 14
EmitSsis. Internal Compiler Error: Workflow EmitSsis contains fatal errors. Phase execution halted.
当我尝试使用 BIML 创建 PKG 时,我不确定出了什么问题:
- 当我手动创建包时(使用相同的代码),这些错误从未弹出
- 我将手动解决方案中的重要 C# 文件复制粘贴到 BIML
问题/想法:
是否与必须用于 ProjectCoreName、AssemblyProduct 和 AssemblyTitle 的 GUID 有关?
- 这是每次扩展BIML时自动生成的吗?
- 如果是这样,我如何在 BIML 本身中为这些项目创建一个 GUID .. 以便它在扩展后直接工作?
这与我必须在 <Files> 标签内的 BIML 中创建 .cs 文件的顺序有关吗?
- 我目前假设 <Files> 标签中 <File> 项目的实际顺序与 BIML 无关
难道我也必须在 BIML 中生成“Resources.resx/Resources.Designer.cs”和“Settings.settings/Settings.Designer.cs”吗?
在每个 .cs 文件中都有“#region 命名空间”部分真的很重要吗?
- 我从手册中删除了它 .. 仍然可以正常工作!
请帮忙。
笔记:
我正在使用 SSDT 2015 和 Varigence BIMLExpress 2017(内部版本 5.0.61915.0)
我知道这可以很容易地在 SRC 本身的 SQLServer 中使用 ROW_NUMBER() 来完成,但是:
- 我在附加示例中使用 OleDbSource 只是为了保持简单
- 最后,我将不得不使用 BIML 生成数百个代码 PKG,它将 SRC 作为平面文件,而不是 OleDB。
- 显然,我希望我生成的 ScriptComponents 在扩展后立即工作.. 无需任何进一步的手动干预:)
谢谢,
NP
BIML 文件:https ://drive.google.com/file/d/10O3aSL5IO34ULS44wl7IX4LUmPH_pI6V/view?usp=sharing