有什么方法可以指定一个依赖项的多个版本对我的库有效吗?
Is there any way to specify that multiple versions of a dependency are valid for my library?
我使用的库会因我使用的其他板条箱而中断。解决方法是降级一些依赖项并保留库的本地版本。
如果我将 MyLibraryDep = {version = "*"}
放入我的 Cargo.toml
中,它就会起作用。由于 Cargo 将自动修复依赖关系,但 crates.io 不允许这样做。
示例:
如果使用 MyLibrary
,而 LibraryA
我必须在 MyLibrary
中使用 MyLibraryDep v0.1.0
如果使用 MyLibrary
,而 LibraryB
我必须在 MyLibrary
中使用 MyLibraryDep v0.2.0
如 Cargo 书中所述,您可以使用 inequality requirements 和多个需求组合形成一系列有效版本。
MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}
这样的要求也将允许 Cargo 选择合适的版本,应该被 crates.io 允许。
我使用的库会因我使用的其他板条箱而中断。解决方法是降级一些依赖项并保留库的本地版本。
如果我将 MyLibraryDep = {version = "*"}
放入我的 Cargo.toml
中,它就会起作用。由于 Cargo 将自动修复依赖关系,但 crates.io 不允许这样做。
示例:
如果使用
MyLibrary
,而LibraryA
我必须在MyLibrary
中使用 如果使用
MyLibrary
,而LibraryB
我必须在MyLibrary
中使用
MyLibraryDep v0.1.0
MyLibraryDep v0.2.0
如 Cargo 书中所述,您可以使用 inequality requirements 和多个需求组合形成一系列有效版本。
MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}
这样的要求也将允许 Cargo 选择合适的版本,应该被 crates.io 允许。