有什么方法可以指定依赖项的多个版本对我的库有效?

Kri*_*fer 2 rust rust-cargo

我正在使用一个库,它会根据我使用的其他板条箱而中断。解决方法是降级一些依赖项并保留库的本地版本。

如果我把MyLibraryDep = {version = "*"}我的Cargo.toml. 由于 Cargo 将自动修复依赖关系,但 crates.io 不允许这样做。

例子:

  • 如果使用MyLibrary,LibraryA我必须MyLibraryDep v0.1.0使用MyLibrary

  • 如果使用MyLibrary,LibraryB我必须MyLibraryDep v0.2.0使用MyLibrary

Seb*_*edl 5

正如 Cargo 书中所指定的,您可以使用不等式要求和组合的多个要求来形成一系列有效版本。

MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}
Run Code Online (Sandbox Code Playgroud)

这样的要求也将允许 Cargo 选择合适的版本,并且应该得到 crates.io 的允许。