SSIS 脚本任务无法读取项目变量

SSIS script task can't read project variable

在我的 project.params 中,我有诸如 LampUserName 类型的字符串变量。在我的 脚本任务然后我尝试像这样阅读它们:

        foreach (var name in new string[] { "ServerName", "InitialCatalog", "UserName", "Password" }) {
            if (!Dts.Variables.Contains(string.Format("$Project::Lamp{0}", name))) {
                writer.WriteLine(name);
            }
        }
        string server_name = (string)Dts.Variables["$Project::LampServerName"].Value;
        string database = (string)Dts.Variables["$Project::LampInitialCatalog"].Value;
        string username = (string)Dts.Variables["$Project::LampUserName"].Value;
        string password = (string)Dts.Variables["$Project::LampPassword"].Value;

其中每一个都打印出它不存在,然后抛出异常。我做错了什么?

您是否从数据流任务中的脚本组件引用了您的项目参数?如果是这样,这不同于在控制流中使用脚本任务。在 ReadOnlyVaraiables 字段中添加项目参数后,它可以作为 Variable 对象的 属性 访问。

string database = Variables.DatabaseParameter.ToString();