gpt4 book ai didi

.net-3.5 - 在 SSIS 2005 的脚本任务中引用 .net 3.5 程序集?

转载 作者:行者123 更新时间:2023-12-01 11:09:07 25 4
gpt4 key购买 nike

我已经使用一个非常基本的示例(在下面概述)使它工作,我想看看其他 SOer 是否有做我正在尝试的事情的经验......在 SSIS 2005 的脚本任务中使用 3.5 框架程序集.

我基本上是按照找到的页面here 来的... 除了我在 Visual Studio 2008 中针对 3.5 框架。

  1. 编写/编译您的代码(针对 3.5 框架)只是一些简单的 Linq,以便我使用大于 2.0 的框架功能

    using System;  
    using System.Collections.Generic;
    using System.Text;
    using System.Linq;

    namespace Ext
    {
    public class Extend
    {
    public string GetValue ()
    {
    /*
    Test Linq to "prove" that we're not running against the
    2.0 framework.
    I know this code could be improved, but bear with me...
    it's throwaway code just to test the concept
    */
    string [] teststring = new string [3];
    teststring[0] = "named Extend";
    string returnString = String.Empty;
    var s = teststring.Where(x => x.ToString() == "named Extend");
    foreach (var x in s)
    {
    returnString = x.ToString();
    }
    return "Extending Script Task through a custom library " + returnString;
    }
    }
    }
  2. 给它一个强名称键
  3. 使用 gacutil 将程序集添加到 GAC
  4. 将程序集复制到 C:\Windows\Microsoft.NET\Framework\v2.0.50727 文件夹...dev
    机器运行的是 Windows 7
  5. 创建了一个脚本任务并添加了对程序集的引用
  6. 在脚本任务中

    Dim x As New Extend()
    MsgBox(x.GetValue.ToString())

它工作正常,因为当我运行 SSIS 项目时,我得到一个带有文本的消息框
“通过名为 Extend 的自定义库扩展脚本任务”

所以...我的问题是,当我尝试做更复杂的事情时,SSIS 项目/脚本任务是否仍然有效...尤其是当我调用使用 LinqToEntities 的(尚未编写的)程序集时?

我必须将文件复制到 Framework 2.0 文件夹并将其添加到 GAC,这对我来说似乎很奇怪……但也许这只是一个奇怪的 SSIS 要求……我知道我无法在其中添加引用脚本任务,除非该程序集位于 Framework 2.0 文件夹中...

最佳答案

哇,我知道这个答案来晚了。但我认为这不会产生任何问题,因为 SSIS 会在运行时从 GAC 加载程序集,只要您的机器上有 .net Framework 2.0 和 3.5,代码就会在运行时运行。

framework 2.0中的文件仅用于开发ide和预编译脚本任务/组件。在运行时,重要的是版本是否存在于 GAC 中。

如果你没有预编译你的任务,那么你将需要两个地方的dll,framework 2.0文件夹和GAC,因为SSIS会先编译脚本任务(所以它需要framework 2.0文件夹中的引用)然后运行任务(引用将从 GAC 加载)。

关于.net-3.5 - 在 SSIS 2005 的脚本任务中引用 .net 3.5 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com