【问题标题】:SSIS script task add existing file to project as link causes binary not to be foundSSIS脚本任务将现有文件添加到项目作为链接导致找不到二进制文件
【发布时间】:2017-05-14 14:01:19
【问题描述】:

我认为这很简单,但我想不会。 这是正在发生的事情。 我创建了一个新包并向其中添加了一个脚本任务。 我打开脚本任务并编辑脚本(C# 2010)。 在解决方案资源管理器中,我右键单击项目名称 (ST_xxxxxx)。 我选择“添加->现有项目”。 在文件资源管理器中,我导航到我的文档文件夹并选择(不是双击)我的“test.cs”,它只是一个空类。在文件资源管理器窗口的右下角,添加按钮旁边,我单击向下箭头并选择“添加为链接”。为了测试,我选择“Build->Build ST_xxxxx”。构建成功。 我保存,然后关闭脚本任务 VS 编辑器。然后我在脚本任务编辑器窗口上单击确定。 出现“脚本错误”窗口。 “包中包含的脚本有编译错误”。 如果我保存它,任务上的错误会显示“找不到脚本的二进制代码”

任何想法如何解决这个问题?

我可以通过相同的过程并选择“添加”而不是“添加为链接”,它工作正常。但这会创建文件的副本,并且必须手动更新。我想链接到我一直使用的常用 cs 文件,而不必更新它们。

任何帮助将不胜感激。

【问题讨论】:

  • 此外,2012 SQL Server 数据工具也会出现此问题。我在 2008 年尝试过同样的事情,它可以很好地添加为链接。
  • 呵呵,我不知道为什么它给了你这个选项,因为添加的代码需要序列化到生成的脚本任务中
  • 也不确定。如果它有效,并且取决于它的工作方式,它似乎是一个不错的选择,可以避免整个复制/粘贴方法,或者每次我添加新内容时让服务器管理员在生产机器上安装一个新的 DLL。如果您有其他方法,我会全力以赴。
  • 找到了解决方案。只需将 dll 放入开发环境和生产服务器可访问的共享驱动器中即可。然后将此代码(在下一条注释中)添加到 Main(入口点)函数之前(或之后)的脚本任务。然后添加相同的 dll 作为对项目的引用。像魅力一样工作。
  • 静态 ScriptMain() { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); } 静态 System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { if (args.Name.Contains("ssisHelper")) { string path = @"c:\temp\";返回 System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "ssisHelper.dll")); } 返回空值; }

标签: c# ssis script-task


【解决方案1】:

找到了解决办法。只需将 dll 放入开发环境和生产服务器可访问的共享驱动器中即可。然后将此代码添加到 Main(入口点)函数之前(或之后)的脚本任务。然后添加相同的 dll 作为对项目的引用。像魅力一样工作。

静态 ScriptMain() { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); } 静态 System.Reflection.Assembly CurrentDomain_AssemblyResolve(对象发送者,ResolveEventArgs args) { if (args.Name.Contains("ssisHelper")) { 字符串路径 = @"c:\temp\"; 返回 System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "ssisHelper.dll")); } 返回空值; }

https://blogs.msdn.microsoft.com/dbrowne/2014/06/25/how-to-load-an-assembly-in-a-ssis-script-task-that-isnt-in-the-gac/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2012-12-21
    相关资源
    最近更新 更多