从 dune 1.1 切换到 dune 2.0 时出现替代依赖项错误

Alternative dependencies error when switch from dune 1.1 to dune 2.0

我将我的沙丘项目版本从 (lang dune 1.1) 切换到 (lang dune 2.0),这在处理备用依赖项时产生了错误。

我在我的沙丘文件中发现了与 dune 1.1 一起工作的傻瓜:

(select vpl_domain.ml from
  (vpl -> domains/numeric/vpl_domain.ok.ml)
  (!vpl -> domains/numeric/vpl_domain.ko.ml))

但是用dune 2.0产生错误

The format for files in this select branch must be vpl_domain.{name}.ml

我试过像这样删除文件名前的路径:

(select vpl_domain.ml from
  (vpl -> vpl_domain.ok.ml)
  (!vpl -> vpl_domain.ko.ml)))

这似乎让 dune 对格式感到满意,但给出了错误

No rule found for vpl_domain.ko.ml

我是不是做错了什么,这是沙丘的错误还是他们自愿进行了重大更改?

我终于在 documentation 中发现:

Dune officially only supports user rules with targets in the current directory