2016-02-12 70 views
2

内我有一个SSIS Script task,我使用VS 2012 Integrated shell (SSDT-BI development)和我遇到了一个奇怪的错误。“]]>”没有在字符数据允许SSIS脚本任务

基本上,我的代码保持VS崩溃时,我关闭了Script Task editor。这促使我与错误:

"Failure saving package. ']]>' is not allowed in character data. (Microsoft.SqlServer.ManagedDTS).

同样是给了我:

"Cannot show the editor for this task. Exception from HRESULT: 0x80131940 (Microsoft.SqlServerDTSRuntimeWrap)."

然后VS就会死机和重新启动。

因此,根据错误判断,它似乎没有链接我正在传递到一个变量,我可以验证使用下面的代码(这会触发完全相同的错误)的string

缺少什么我在这里...这是一个错误?我相信我只是缺少公然对这个问题的白皮书或东西,但为什么不能在SSIS脚本任务下面的代码工作?我知道它将用于C#控制台应用程序。

[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] 
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase 
    { 
     public void Main() 
     { 
      // TODO: Add your code here 
      string hi = "<![CDATA[" + "]]>"; 

      Dts.TaskResult = (int)ScriptResults.Success; 
     } 

     #region ScriptResults declaration 
     enum ScriptResults 
     { 
      Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success, 
      Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure 
     }; 
     #endregion 
    } 

回答

1

不能使用]]><作为脚本代码本身保存为你的包中的XML。

string hi = (char)60+"![CDATA[" + "]]"+ (char)62;