C# ';]]&燃气轮机';ssis脚本任务中的字符数据中不允许

C# ';]]&燃气轮机';ssis脚本任务中的字符数据中不允许,c#,sql-server,visual-studio,ssis,C#,Sql Server,Visual Studio,Ssis,我有一个SSIS脚本任务,我正在VS 2012集成shell(SSDT-BI开发)中使用它,我遇到了一个奇怪的错误 基本上,当我关闭脚本任务编辑器时,我的代码不断崩溃。它提示我错误: 保存程序包失败。字符数据中不允许使用“]]>”。 (Microsoft.SqlServer.ManagedDTS) 这也给了我: “无法显示此任务的编辑器。HRESULT的例外情况: 0x80131940(Microsoft.SqlServerDTSRuntimeWrap)。” 然后VS将崩溃并自行重新启动 因此,

我有一个
SSIS脚本任务
,我正在
VS 2012集成shell(SSDT-BI开发)
中使用它,我遇到了一个奇怪的错误

基本上,当我关闭
脚本任务编辑器时,我的代码不断崩溃。它提示我错误:

保存程序包失败。字符数据中不允许使用“]]>”。 (Microsoft.SqlServer.ManagedDTS)

这也给了我:

“无法显示此任务的编辑器。HRESULT的例外情况: 0x80131940(Microsoft.SqlServerDTSRuntimeWrap)。”

然后VS将崩溃并自行重新启动

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

我在这里遗漏了什么…这是一个bug吗?我肯定我只是明显遗漏了一份白皮书或关于这个主题的东西,但为什么下面的代码不能在SSIS脚本任务中工作呢?我知道这对于C#console应用程序来说是可行的

[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
    }
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
公共部分类ScriptMain:Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
公共图书馆
{
//TODO:在此处添加代码
字符串hi=“”;
Dts.TaskResult=(int)ScriptResults.Success;
}
#区域脚本结果声明
枚举脚本结果
{
Success=Microsoft.SqlServer.Dts.Runtime.dtsesecresult.Success,
Failure=Microsoft.SqlServer.Dts.Runtime.dtsesecresult.Failure
};
#端区
}

您不能使用
]>

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