3

我正在尝试为 SSIS 创建一个自定义日志记录提供程序,但是在部署 dll 时,它没有显示在提供程序列表中。

SSIS 版本是 11.0.2100.60。我尝试了 .NET Framework 2.0 和 3.5。我安装在 GAC 中,并复制到下面的两个文件夹中:

C:\Program Files\Microsoft SQL Server\110\DTS\LogProviders
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\LogProviders

完成此操作后,我打开了 Visual Studio [Shell],并创建了一个简单的 SSIS 包。打开SSIS\Logging...菜单时,新的自定义日志提供程序不存在。

我现在使用的代码是 Microsoft ( HTMLLogProviderCS ) 从 Codeplex 提供的示例包,没有运气。

有什么我可能错过的想法吗?

4

1 回答 1

10

以下是我使用 Visual Studio 2010 在 .NET 4.0 框架中创建自定义日志提供程序所执行的步骤。这些步骤还显示了提供程序在 SQL Server Data Tools 2010 中的显示方式。

首先,我使用的是 Microsoft SQL Server Integrations Services Designer 版本 11.0.2100.60

SSIS 设计器版本

创建一个类库项目。我选择了 C# 和 .NET Framework 4,将项目命名为 CS40.CustomLogProvider。

创建类库

将类文件名更改为SSISCustomLogProvider. 右键单击引用并导航C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies到添加 DLL的路径Microsoft.SQLServer.ManagedDTS.dll

将以下代码粘贴到类中:

using Microsoft.SqlServer.Dts.Runtime;

namespace CS40.CustomLogProvider
{
    [DtsLogProvider(
        DisplayName = "Custom log provider created by Siva",
        Description = "A simple log provider.",
        LogProviderType = "Custom")]
    public class SSISCustomLogProvider : LogProviderBase
    {
        // TODO: Override the base class methods.
    }
}

添加参考

双击项目下的属性节点。单击属性页面上的签名选项卡以使用强密钥对程序集进行签名。检查签署程序集并选择选择一个强名称密钥文件

签署大会

输入密钥文件名,例如 SampleKey。如果您愿意,可以输入密码。

强名称键

将创建强名称密钥并将其添加到项目中。

已创建强键

构建项目。我在发布模式下构建了项目。DLL 将在C:\temp\CS40.CustomLogProvider\bin\Release. 现在,是时候将 DLL 注册到 GAC 了。我在路径中找到了 gacutilC:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools

在以管理员身份运行模式下打开命令提示符。依次输入以下命令并回车。

将命令提示符路径更改为可以找到 gacutil 的位置。

cd C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools

输入以下命令将 DLL 添加到 GAC。

gacutil -i C:\temp\CS40.CustomLogProvider\bin\Release\CS40.CustomLogProvider.dll

海关总署注册

将 DLL 复制到CS40.CustomLogProvider.dlllocationC:\temp\CS40.CustomLogProvider\bin\Release并将其粘贴到C:\Program Files\Microsoft SQL Server\110\DTS\LogProviders. 路径中的值110是指 SQL Server 2012。

已复制 DLL

使用 SQL Server Data Tools 创建一个新的 SSIS 包。

SSIS项目

在新创建的 SSIS 包上,单击SSIS --> Logging...以访问日志记录选项

日志记录

您会注意到新创建的 SSIS 日志提供程序。您可以看到它显示了 DisplayName 属性上使用的值。

希望有帮助。

SSIS 日志提供程序

于 2012-10-30T19:06:37.660 回答