1

将 codeeffects 从 4.3.2.6 升级到 4.3.6.7 后,具有任何编码操作或方法的现有规则无法加载并出现错误:

"突出显示的规则元素无法位于当前源对象中。请更新此规则或回滚对源对象所做的所有更改。 "

随后在规则编辑器中执行以下操作

规则编辑器错误

如何克服?

在升级之前,规则没有抛出任何错误,并且按预期对数据采取了行动。下面的错误和 XML 来自下载的演示。更新演示后,我遇到了同样的问题。

规则的 XML:

<?xml version="1.0" encoding="utf-8"?>
<codeeffects xmlns="http://codeeffects.com/schemas/rule/41" xmlns:ui="http://codeeffects.com/schemas/ui/4">
  <rule id="2eb43e80-320c-496f-bf50-7ead12bae886" webrule="4.1.6.4" utc="2014-08-05T15:29:26.3909" type="CodeEffects.Rule.Demo.Bre.Mvc.Models.Patient, CodeEffects.Rule.Demo.Bre.Mvc.2013, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" eval="true">
    <name>Check Date</name>
    <definition>
      <condition type="equal">
        <method name="IsToday" type="CodeEffects.Rule.Demo.Bre.Mvc.Services.PatientService, CodeEffects.Rule.Demo.Bre.Mvc.2013, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
          <value type="System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]">2014-08-06T00:00:00.0000</value>
        </method>
        <value type="System.Boolean">true</value>
      </condition>
    </definition>
    <format>
      <lines />
    </format>
  </rule>
</codeeffects>

我尝试更新 XML 中的 webrule="4.1.6.4" 值以匹配新版本,但没有成功。

4

1 回答 1

1

首先,请检查您的项目是否确实声明了“缺失”方法。然后在此处发布您的规则 XML,如果整个规则太大,至少其部分使用该方法。

于 2017-08-22T19:25:12.933 回答