Невозможно скомпилировать компонент служб SSIS;Отсутствует сборка в Visual Studio 2008 - PullRequest
6 голосов
/ 13 июля 2011

В SSIS нет стандартной задачи управления потоком для загрузки файла по HTTP. Я попытался несколько обходных путей ( Выполнить процесс wget , Задача сценария HttpClientConnection ), но пришел к выводу, что наиболее надежный и многократно используемый способ выполнить эту задачу - создать пользовательский компонент .

Я пытался сделать это, следуя руководству Рэя Горски , но столкнулся с проблемой в моей среде разработки.

Проблема в том, что Visual Studio 2008 не распознает пространство имен Microsoft.SqlServer.Dts. Он жалуется сообщением об ошибке «Тип или имя пространства имен« Dts »не существует в пространстве имен« Microsoft.SqlServer »(отсутствует ссылка на сборку?)».

Я нашел совет на форуме MSDN , в котором говорится, что вы можете добавить ссылку, добавив сборку ManagedDTS.dll, найденную в C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\, но этот каталог не существует в моей системе. Я думаю, это потому, что я использую SQL Server 2008, а не SQL Server 2005.

Как мне решить эту проблему?

Вот мой код, основанный на примере из руководства Рэя Горски. Здесь нет кода для выполнения моей задачи, просто пустая заглушка, которая не компилируется.

using System;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;

namespace HTTPControlTask
{
    [DtsTask(
        Description = "HTTP",
        DisplayName = "HTTP",
        TaskContact = "Iain Elder",
        TaskType = "SSIS Help Task",
        RequiredProductLevel = DTSProductLevel.None)]
    public class HTTPControlTask : Task, IDTSComponentPersist
    {
    }
}

Вот скриншот ошибок, которые я вижу, когда пытаюсь его скомпилировать:

enter image description here

Ответы [ 3 ]

7 голосов
/ 13 июля 2011

В 64-bit операционной системе вы можете найти файл Microsoft.SQLServer.ManagedDTS.dll по следующему пути:

C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies

В операционной системе 32-bit вы можете найти файл Microsoft.SQLServer.ManagedDTS.dll по следующему пути:

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies

Папка 90 в Microsoft SQL Server представляет SQL Server 2005.

Папка 100 в Microsoft SQL Server представляет SQL Server 2008.

3 голосов
/ 25 сентября 2014

Просто небольшое обновление предыдущего ответа для SQL2012

DLL-файлы находятся в 110.

Теперь даже после добавления ссылки вы получите ту же ошибку, если соберете свой проект с помощью.Профили Net3.5 или более ранние.

для SQL2012 необходимо использовать .Net4.0 или более позднюю версию, иначе Visual Studio выдаст ту же ошибку.

1 голос
/ 30 марта 2015

После установки SS2012 пакеты сценариев, разработанные в ss2008r2, имеют описанную ошибку.После нескольких попыток решить проблему, я установил ss2008r2 sdk, открыл все сценарии и закрыл, и теперь все в порядке.

Спасибо, Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...