カスタム制御フロー コンポーネントのエディターを開こうとしているときに問題に直面しています。パッケージが存在するdllをコピーしようとしましたが、役に立ちませんでした。私が何か間違ったことをしている場合、またはこの問題を解決する方法を教えてください。
Here is the code:
Main class inherits TASK
namespace SSIS.Custom.ControlFlowUI
{
[DtsTask (
DisplayName = "CopyTable",
Description = "A custom Unzip task for demonstration purposes.",
TaskType = "CustomComponent",
UITypeName = "CopyTableTaskUI, CopyTable, Version=1.0.0.0,Culture=Neutral, PublicKeyToken=9097a336d1055e0b")]
public class CopyTable : Task
{
#region Override methods
public override DTSExecResult Validate(Connections connections,
VariableDispenser variableDispenser, IDTSComponentEvents componentEvents,
IDTSLogging log)
{
return base.Validate(connections, variableDispenser, componentEvents, log);
}
public override DTSExecResult Execute(Connections connections, VariableDispenser variableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log, object transaction)
{
try
{
ValidateSchema(@"GGN19\MSSQL12");
// Return success.
return DTSExecResult.Success;
}
catch (System.Exception exception)
{
// Capture exceptions, post an error, and fail validation.
return DTSExecResult.Failure;
}
}
#endregion
#region Public methods
public string ValidateSchema(string tableName)
{
GetTableList(tableName);
return "";
}
private List<string> GetTableList(string ServerName)
{
List<string> lTables = new List<string>();
try
{
SqlConnection dbConn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestingTmp;Data Source=" + ServerName);
SqlCommand dbCmd = new SqlCommand("Select NAME from sysobjects where type ='U';", dbConn);
dbConn.Open();
SqlDataReader SqlDR = dbCmd.ExecuteReader();
while (SqlDR.Read())
{
lTables.Add(SqlDR.GetString(0));
}
dbConn.Close();
}
catch (Exception ex) { }
return lTables;
}
private bool ValidateTableSchema(string ServerName, string table1, string table2)
{
SqlConnection dbConn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=msdb;Data Source=" + ServerName);
SqlCommand dbCmd = new SqlCommand("Select * from '" + table1 + "';", dbConn);
dbConn.Open();
SqlDataReader SqlDR = dbCmd.ExecuteReader();
DataTable schema = SqlDR.GetSchemaTable();
dbCmd = new SqlCommand("Select * from '" + table2+ "';", dbConn);
dbConn.Open();
SqlDR = dbCmd.ExecuteReader();
DataTable schema2 = SqlDR.GetSchemaTable();
return schema.Equals(schema2);
}
#endregion
}
UI Class
namespace ControlFlowUI
{
public class CopyTableTaskUI : IDtsTaskUI
{
#region // Fields
private TaskHost _taskHost;
#endregion
#region Properties
#endregion
#region Methods
public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
{
_taskHost = taskHost;
}
public ContainerControl GetView()
{
return new CopyTableFrm(_taskHost);
}
#endregion
#region IDtsTaskUI Members
public void Delete(IWin32Window parentWindow)
{
throw new NotImplementedException();
}
public void New(IWin32Window parentWindow)
{
throw new NotImplementedException();
}
#endregion
}
}
エラーは、カスタム制御フローに関連付けられているユーザー インターフェイスに関連しています。基本的には、2 種類の制御フロー コンポーネントを作成できます。1 つは単純な変換で、もう 1 つはユーザー入力を取得するための UI を持つこともできます。コンポーネントに値を入力して値を指定します...そのため、com をダブルクリックして UI を取得すると、エラーがスローされます.. タイトル: Microsoft Visual このタスクのエディターを表示できません。タイプ名 'CopyTableTaskUI, CopyTable, Version=1.0.0.0,Culture=Neutral, PublicKeyToken=9097a336d1055e0b' で指定されたタスク ユーザー インターフェイスを読み込めませんでした。ファイルまたはアセンブリ 'CopyTable, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9097a336d1055e0b' またはその依存関係の 1 つを読み込めませんでした。の