現在、いくつかの既存の SSIS パッケージで使用されている既存の MQ カスタム接続マネージャーがあります。
新しいプロパティを追加してコードを少し変更したいのですが、そうすると、他のすべてを壊しているように見えます (すべてやり直す必要があります)。
それを使用する既存のパッケージを中断せずにこれを回避する方法はありますか?
ありがとう
プロパティを追加して SSIS パッケージを編集し、それを実行する必要があると仮定します。その後、SSIS パッケージは必要ありません。次のコード メソッドをアプリケーションに追加し、このメソッドを呼び出す必要があります。したがって、すべての変更は、別のパッケージを変更することなく、新しいパッケージにのみ適用されます。
コード
public static DtsErrors RunSSISPackage(string packagePath, string MQProperty)
{
* Append the auto generated GUID with the package name for running the SSIS package
*/
string uniqueId = Guid.NewGuid().ToString();
string uniquePackage = Path.GetDirectoryName(packagePath) + @"\" + Path.GetFileNameWithoutExtension(packagePath) + "_" + uniqueId + ".dtsx";
File.Copy(packagePath, uniquePackage);
Package pkg;
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
pkg = app.LoadPackage(uniquePackage, null);
//MessageBox.Show(srcFileName);
//MessageBox.Show(TPODBConnection);
pkg.Connections["MQConnection"].<<YourPropertyName>> = MQProperty;
//Uncomment this to overwrite the existing file
//Do nothing until you are using a version control system
//app.SaveToXml(packagePath, package, null);
DTSExecResult result = pkg.Execute();
if (result == DTSExecResult.Failure)
{
return pkg.Errors;
}
File.Delete(uniquePackage);
return null;
}
お役に立てれば!