Lasso 9与Lasso 8的兼容性define_tag语法

时间:2013-12-18 11:43:02

标签: lasso

我有一个相当复杂的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使用它的任何建议吗?

提前感谢您的时间和帮助。

-Justin

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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;

答案 3 :(得分:0)

来自LassoSoftLassoTalk list的Jono指出这是我在使用的9.2.6中已知的错误。

在恢复开发之前,我将等待9.2.7。感谢所有人的回复。

-Justin