在我的应用程序中,动态创建脚本任务.
在SQL Server 2008的SSIS实现中,以下方法工作正常.
private void SetSourceCode(ScriptTask scriptTask, string code, string codeName)
{
string fileName = "ScriptMain.vb";
string language = "VisualBasic";
string proj = ".vbproj";
scriptTask.ScriptLanguage = VSTAScriptLanguages.GetDisplayName(language);
scriptTask.ScriptingEngine.InitNewScript(language,
scriptTask.ScriptProjectName, proj);
scriptTask.ScriptingEngine.ShowDesigner(false);
scriptTask.ScriptingEngine.AddCodeFile(fileName, code);
if (!scriptTask.ScriptingEngine.Build())
throw new Exception("Failed to build vb script code: " + codeName);
scriptTask.ScriptingEngine.SaveScriptToStorage();
if (!scriptTask.ScriptingEngine.CloseIDE(false))
{
throw new Exception("Unable to close Scripting engine.");
}
}
Run Code Online (Sandbox Code Playgroud)
如何将此代码迁移到SQL Server 2012,因为从SQL Server 2012 dll-s(程序集)中删除了以下方法:
通常,如何在SQL Server 2012中动态设置脚本任务的源代码?
在 SSIS 中创建脚本任务后出现错误:
验证错误。脚本任务:找不到脚本的二进制代码。请通过单击编辑脚本按钮在设计器中打开脚本并确保它成功构建。
错误已修复(只需要成功构建脚本)并且与问题无关。
在我在 StackOverflow 上寻找答案的过程中,我发现了很多关于这种“预编译”设置的讨论,但是在单击 SSIS 中的几乎所有内容后,我只是找不到它,因此提出了这个问题。
我怀疑它在以后的版本中被删除了,但无法证明。如果您碰巧知道答案,请告诉我。