(点击查看大图)图2-6 在命令提示符下使用SN实用程序 |
在通过类库项目的属性用强名签署程序集时,必须指定强名文件。这可以通过从工具栏中选择Project | Properties命令完成。在出现属性窗口时,选择Signing选项卡,选中Sign the assembly复选框,如图2-7所示。使用下拉菜单,选择Browse找到已创建的密钥文件来创建一个强名密钥文件。如果还没有使用SN实用程序创建密钥文件,可以从下拉菜单中选择New(而非Browse)进行创建。
(点击查看大图)图2-7 使用属性窗口中Signing选项卡 |
正如图2-8所示,Visual Studio 2005使得创建新密钥变得更容易,还提供了口令保护选项。
(点击查看大图)图2-8 使用Visual Studio 2005创建强名密钥 |
在属性窗口中,选择Compile选项卡,设置configuration为Active (Release)。这就删除了任何调试信息,为生产优化了程序集。没有设置为Release,就不能将代码送至生产,或是代码将运行得特别缓慢。现在可以从工具栏中选择Build | Build Solution来构建项目。注意要构建输出路径,因为在将程序集添加到GAC中时需要用到它。
将程序集添加到GAC的最简单的方法是将程序集复制到C:\WINDOWS\assembly。不过,C:\Program Files\ Microsoft.NET\SDK\v2.0\Bin中的Global Assembly Cache Tool (Gacutil.exe)也可以使用。也可以通过Start | All Programs | Microsoft Visual Studio 2005 | Visual Studio Tools | Visual Studio 2005 Command Prompt访问该工具的路径。记住,如果使用的.NET版本不同,路径会有所不同。在命令提示符中,输入gacutil.exe /i "<程序集路径>"来启动该实用程序,如图2-9所示。
(点击查看大图)图2-9 通过命令提示符启动gacutil.exe |
程序集也必须放在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727路径中(同样,最后的文件夹名会因安装的.NET版本不同而不同)。Visual Studio for Applications将从中寻找引用。如果Script Task在设计模式下,可以右击左侧Project Explorer窗格中的References。然后选择Add Reference来引用程序集。然后将出现可引用的程序集列表。选择程序集的名称并单击Add按钮,可以添加引用。添加的程序集将出现于Add Reference窗口中,如图2-10所示。单击OK按钮完成添加并关闭窗口。
(点击查看大图)图2-10 添加一个引用 |
在添加完引用后,下列代码会显示如何从Script Task调用自定义程序集。两个Script Task变量被通过对象的构造函数传递到自定义程序集SSIS.Utilities.HttpDownload。在使用下列代码之前,在Script Task的ReadOnlyVariables属性中设置这两个变量很重要。
Imports System |
在运行这个程序包之前,请确保将这两个变量的值设置为有用的内容,否则代码将不知道访问哪个URL和保存结果文件的位置。可以再次打开Variables窗口,通过手动为strUrl变量值和strSaveFile变量值输入有效的URL和有效的文件来设置变量。运行程序包,然后就会看到在指定的位置创建的文件。
任何时候使用自定义程序集时,都很有必要实现它们之前进行测试。测试程序集功能的简单方法是添加一个创建自定义对象的Windows项目到类库项目所属的相同的解决方案中(见图2-11)。添加Windows项目的方法是,右击类库项目的解决方案,单击Add | New Project,选择Windows Application。在Windows项目中,右击选择References | Add References | Projects,将自定义库项目添加为引用。所需要添加的是测试该自定义对象的按钮。注意,下列代码中Windows项目是用C#编写的。这是Visual Studio 2005中的一个新功能,使您可以添加不同代码类型的项目。可以添加下列代码来测试程序集。
using System; |
GetFromWebClient()方法实例化自定义对象HttpDownload,接受一个URL和文件路径。然后在button1_Click事件中调用这一方法,这一事件在窗体中的按钮被单击时调用。您的按钮的名称可能有所不同,所以可适当改变这一事件的名称。现在已经有两个项目,Windows窗体项目必须设置为启动项目。设置的方法是右击Windows项目,选择Set as Startup Project。在解决方案运行后,如果没有问题,会弹出一个消息框表明没有错误发生。
如果代码正确运行,程序集就可以从Script Task中引用。
(点击查看大图)图2-11 将程序集作为Windows项目测试 |