29

(现在作为DNX 问题 3206提出......)

DNX 环境:1.0.0-rc1,Windows 10 x64。

想象一下,我有三个解决方案:

  • 应用1
  • 应用2
  • 常见的

这些解决方案中的每一个都有多个项目;将所有项目放在一个解决方案中是没有意义的,即使这会简化这个特定问题。

Application1 和 Application2 中的各种项目依赖于 Common 中的一个项目。他们的project.json文件以正常的方式表明了这种依赖关系。虽然最终我想将工件从 Common 发布到 NuGet 服务器(内部或外部),但暂时只从源代码构建所有内容是有意义的。

我可以通过global.json在(比如说)Application1 中进行编辑来做到这一点:

{
  "projects": [ "src", "test", "../Common/src" ], 
  "sdk": { "version": "1.0.0-rc1-final"  }
}

有了它,我可以dnu restore 从 Application1 目录执行...但不能从根目录执行。(错误是“无法找到依赖项'Common' >= 0.0.0-*”。)我可以dnu restore Application1从根目录运行,但不仅仅是dnu restore.

我尝试了很多方法来引用 Common src 目录(包括“./Common/src”、“Common/src”、“../repo-name/Common/src”),但没有任何乐趣然而。在每种情况下,我都会收到上面显示的错误消息。我尝试过使用dnu -v restore,但这似乎没有提供任何额外信息,说明哪些目录正在为基于源的包进行探测。

那么,应该如何"../Common/src"解决global.json呢?对于我所描述的开发场景,这是否是一种合理的方法,如果是这样,是否只是针对 DNX 提交错误的问题?

4

1 回答 1

8

它不像您期望的那样工作,当您启动dnu restore它时,它会尝试global.json在当前目录或父目录中查找,并从中读取项目路径。因此,在您的示例中,它不会读取任何内容,因为global.json它位于子目录中。

解决此问题的一种方法是global.json使用以下内容添加到根文件夹:

{
   "projects": [ "Application/src", "Common/src" ]
}

我会四处询问这种情况,以及在搬到dotnet cli

于 2015-11-25T18:58:57.397 回答