无法为脚本组件生成 BIML

unable to generate BIML for script component

我正在尝试使用 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 时,我不确定出了什么问题:


问题/想法:

  1. 是否与必须用于 ProjectCoreName、AssemblyProduct 和 AssemblyTitle 的 GUID 有关?

    • 这是每次 BIML 展开时自动生成的吗?
    • 如果是这样,我如何在 BIML 本身中为这些项目创建一个 GUID ..以便它在扩展后直接工作?
  2. 这与我必须在 BIML 中的 标记内创建 .cs 文件的顺序有关吗?

    • 我目前假设 标签中 项的实际顺序与 BIML 无关
  3. 难道我必须在 BIML 中也生成 "Resources.resx/Resources.Designer.cs" 和 "Settings.settings/Settings.Designer.cs"?

  4. 在每个 .cs 文件中包含“#region 命名空间”部分真的很重要吗?

    • 我从手动解决方案中删除了它..仍然工作正常!


请帮忙。

备注:


谢谢,


NP


BIML 文件:https://drive.google.com/file/d/10O3aSL5IO34ULS44wl7IX4LUmPH_pI6V/view?usp=sharing

如果您将 类 包装在自定义命名空间中,错误将消失。

namespace SomeNamespace {
    public class UserComponent: ScriptComponent
    {
         ...
    }

    public class Connections
    {
          ...    
    }

    public class Variables
    {
          ...     
    }
}

namespace SomeNamespace {

    public class Input0Buffer: ScriptBuffer
    {
         ...
    }
}

关于(动态地)从此 Biml 文件创建多个包的评论:您将必须分配一个动态命名空间名称,如下所示:

namespace <#=variableContainingNamespaceName#> {
    ...
}

关于您的评论:

  1. 该问题与 ProjectCoreName 无关,但我担心如果您对从同一 biml 生成的多个包重复使用相同的 ProjectCoreName(没有实际测试),您可能 运行 会遇到问题
  2. 没有
  3. 不需要
  4. 不,该部分不是必需的。