无法解决 Dart App Engine 依赖性

Can't resolve Dart App Engine dependency

我正在尝试为 Google App Engine 构建一个 Dart 应用程序,但 Dart 无法解析除 0.0.1 版本之外的任何 appengine 依赖项。这是我的 pubspec.yaml:

name: MyApp
version: 0.0.1
dependencies:
  angular2: 2.0.0-alpha.44
  browser: ^0.10.0
  appengine: '>=0.3.0 < 0.4.0'
transformers:
- angular2:
    entry_points: web/main.dart

这是我得到的错误:

Package appengine has no versions that match >=0.3.0 <0.4.0 derived from:
- MyApp depends on version >=0.3.0 <0.4.0

我已经尝试了 https://pub.dartlang.org/packages/appengine/versions 的每个应用程序引擎版本,但唯一有效的版本是 ^0.0.1

Downloading appengine 0.0.1...
Got dependencies!

我真的很想使用比 0.0.1 更新的东西。是什么东西坏了还是我漏掉了什么?

*更新: 根据 Günter Zöchbauer 的建议,我 运行 在详细模式下,这是输出:

ERR : Package appengine has no versions that match >=0.0.2 <0.4.0 derived from:
    | - MyApp depends on version >=0.0.2 <0.4.0
FINE: Exception type: NoVersionException
FINE: package:pub/src/entrypoint.dart 154      Entrypoint.acquireDependencies.<async>
    | ===== asynchronous gap ===========================
    | dart:async                               _Completer.completeError
    | package:pub/src/entrypoint.dart 199      Entrypoint.acquireDependencies.<async>
    | ===== asynchronous gap ===========================
    | dart:async                               _Future.then
    | package:pub/src/entrypoint.dart 152      Entrypoint.acquireDependencies.<async>
    | ===== asynchronous gap ===========================
    | dart:async                               Future.Future.microtask
    | package:pub/src/entrypoint.dart          Entrypoint.acquireDependencies
    | package:pub/src/command/get.dart 30      GetCommand.run
    | package:args/command_runner.dart 178     CommandRunner.runCommand.<fn>
    | dart:async                               Future.Future.sync
    | package:args/command_runner.dart 131     CommandRunner.runCommand
    | package:pub/src/command_runner.dart 130  PubCommandRunner.runCommand.<async>.<fn>
    | dart:async                               Future.Future.sync
    | package:pub/src/utils.dart 103           captureErrors.<fn>
    | package:stack_trace                      Chain.capture
    | package:pub/src/utils.dart 117           captureErrors
    | package:pub/src/command_runner.dart 130  PubCommandRunner.runCommand.<async>

我扩展了版本以包含 0.0.2 和 0.4.0 之间的任何内容,但它失败了。即使我可以从网上手动下载版本,它肯定会抛出一个没有找到版本的错误。

这是 pub 的一个已知问题。如果它无法解析一组匹配的依赖项,它有时会打印误导性消息。

pub upgrade --verbose 

应该显示更多信息,以便调查哪些依赖项 pub 无法找到兼容版本。

冲突是protobuf包。
appengine 0.3.2 取决于 protobuf 0.5.0
angular2 2.0.0-alpha.44 取决于 protobuf 0.4.2
但是 angular2 2.0.0-alpha.45 也取决于 protobuf 0.5.0

如果您将 angular 依赖项更改为

angular2: ^2.0.0-alpha.44

angular2: 2.0.0-alpha.45

angular2: ^2.0.0-alpha

pub 可以很好地解决所有依赖关系。