0

我有一个相当复杂的 Lasso 8 方法(自定义标记),我想在 Lasso 8 和 Lasso 9 中运行它。(在过渡到 Lasso 9 期间,我们设置了指向具有不同主机名的相同 Web 根目录的虚拟主机。)我已将 Lasso 8 方法简化为以下内容,但仍无法在 Lasso 9 中运行:

<?LassoScript

define_tag('old8method', -required='input', -type='string');
    return(#input);
/define_tag;

old8method('test');

?>

导致 Lasso 9 出现以下错误:

错误代码:-1 错误消息:位置超出范围:0 最大值为 1 错误堆栈:

3:1 myfile.lasso

无论是使用我的 200 行方法还是这个简化的测试,错误都是一样的。

关于修改 Lasso 8 define_tag 代码以便 Lasso 9 使用它的任何建议?

4

4 回答 4

1

这是 9.2.6 初始版本中的一个错误。如果在 Linux 上,请尝试使用包管理器进行更新。如果是 OS X,请从 LassoSoft 网站下载最新的安装程序并重新安装。如果这不能解决问题,请恢复到 9.2.5 并针对您正在使用的特定平台向 LassoSoft 提交错误。

于 2013-12-18T14:08:31.487 回答
0

我测试了提供的示例,它对我来说效果很好(9.2.5 OSX)

如果存在导致混淆的挥之不去的签名,可能值得重新启动您的实例。可能触发了旧定义导致您看到的错误。

于 2013-12-18T12:57:01.913 回答
0

我建议您将定义包装在条件中。因此能够在同一个文件中提供 8.X 和 9.X 定义。

if(lasso_version >> '9.');
    define old8method(input::string);
        return #input;
    /define;
else;
    define_tag('old8method', -required='input', -type='string');
        return(#input);
    /define_tag;
/if;
于 2013-12-18T14:22:23.050 回答
0

LassoTalk 列表中来自LassoSoft的Jono指出,这是我正在使用的 9.2.6 中的一个已知错误。

在恢复开发之前,我将等待 9.2.7。感谢大家的回复。

-贾斯汀

于 2013-12-19T00:54:47.927 回答