我有一个相当复杂的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错误Msg:位置超出范围:0 max是1错误堆栈: 3:1 myfile.lasso
无论是使用我的200行方法还是这个简化的测试,错误都是相同的.
对于修改Lasso 8 define_tag代码,使Lasso 9与它一起工作有任何建议吗?
发布于 2013-12-18 14:08:31
这是9.2.6初始版本中的一个错误。如果在Linux上,尝试使用包管理器进行更新。如果OS,从LassoSoft网站下载最新的安装程序并重新安装.如果没有解决这个问题,请恢复到9.2.5,并使用LassoSoft为您使用的特定平台提交一个bug。
发布于 2013-12-18 12:57:01
我测试了所提供的示例,它对我很好(9.2.5OSX)
如果有挥之不去的签名导致混淆,那么重新启动您的实例可能是值得的。可能会触发一个旧的定义,导致您看到的错误。
发布于 2013-12-18 14:22:23
我建议你用一个条件来包装你的定义。因此,能够在同一个文件中同时提供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;https://stackoverflow.com/questions/20657232
复制相似问题