Я написал этот код для реализации задачи потока управления служб SSIS, которая извлекает файл по HTTP:
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace HttpTask
{
[DtsTask(
DisplayName = "HTTP Task",
TaskContact = "Iain Elder",
RequiredProductLevel = DTSProductLevel.None
)]
public class HttpTask : Task
{
public string LocalPath {get; set;}
public string Connection {get; set;}
public bool OverwriteDestination {get; set;}
public DTSExecResult Execute(Connections connections,
VariableDispenser dispenser, IDTSComponentEvents events,
IDTSLogging log, object transaction)
{
HttpClientConnection http = AcquireHttpConnection(connections);
http.DownloadFile(this.LocalPath, this.OverwriteDestination);
return DTSExecResult.Success;
}
private HttpClientConnection AcquireHttpConnection(Connections connections)
{
ConnectionManager cm = connections[this.Connection];
object nativeConnection = cm.AcquireConnection(null);
return new HttpClientConnection(nativeConnection);
}
}
}
В Visual Studio я собираю и развертываю свою задачу с помощью этого сценария после сборки, чтобы скопировать пакетв глобальный кэш сборок:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\gacutil.exe" /if "$(TargetPath)"
copy $(TargetFileName) "C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Tasks"
При использовании Business Intelligence Development Studio я вижу задачу в наборе инструментов:
Когда я перетаскиваю задачув окне дизайна я вижу эту ошибку:
Задача не отображается на холсте дизайна.
Что я здесь не так сделал?
РЕДАКТИРОВАТЬ: Шива предложил мне подписать сборку под строгим именем.Я выполнил шаги 1 и 2 руководства по подписанию сборок в блоге Бенни Остина .Я не выполнил другие шаги, потому что мой сценарий после сборки развертывает для меня компонент.
В свойствах проекта Visual Studio я перехожу на вкладку Подписи и создаю новый файл ключа строгого имени для сборки.:
Я сохраняю настройки и перестраиваю пакет.Сценарий после сборки развертывает новый пакет.
Я все еще получаю точно такую же ошибку.