我正在使用一个根据我正在使用的其他包装箱而中断的库。解决方法是降级一些依赖项并保留该库的本地版本。
在货物中,有没有办法指定两个MyLibraryDep
版本对我的图书馆有效?
如果我将MyLibraryDep = {version = "*"}
放在Cargo.toml
中,它将起作用。由于Cargo随后会自动修复依赖关系,但crates.io不允许这样做。
示例:
如果使用MyLibrary
和LibraryA
,我必须在MyLibraryDep v0.1.0
中使用MyLibrary
如果使用MyLibrary
和LibraryB
,我必须在MyLibraryDep v0.2.0
中使用MyLibrary
答案 0 :(得分:4)
按照《货运手册》中的规定,您可以使用inequality requirements和多个要求组合形成一系列有效版本。
MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}
这种要求还将使Cargo选择合适的版本,并且应由crates.io允许。