gpt4 book ai didi

c# - 如何使用 .NET CLI 指定对其他项目的依赖关系?

转载 作者:太空狗 更新时间:2023-10-29 23:05:59 25 4
gpt4 key购买 nike

由于代码库的组织问题,打破一个大型解决方案是多个项目的常见做法,这在 Visual Studio 内部的早期版本的 .NET Framework 中很容易完成。

如何使用 .NET CLI 完成相同的操作?假设我们有以下简化的场景:

- Solution Folder
- global.json
- src
- LibProject
- ConsoleProject

现在假设 ConsoleProject 依赖于 LibProject。凭直觉,我认为这意味着在 ConsoleProject 中,project.json 必须包含一个 dependencies 部分,如下所示:

"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-*"
},
"LibProject": "1.0.0-*"
}

但是,如果我们这样做,当我们尝试恢复 ConsoleProject 的依赖项时,或者当我们尝试构建它时,我们将无法执行此操作。当我们尝试恢复时,我们收到消息

Unable to resolve 'LibProject (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.

我明白了原因。还原时,NuGet 会尝试在 NuGet.config 的指定源上将其作为包找到。但它不应该这样做,它应该使用同级文件夹中的那个。

在以前的 .NET Core 版本中,我们会通过 VS 添加引用,然后,如果我们尝试构建 ConsoleProject,VS 会首先构建 LibProject并使用相应的DLL。

同样的事情在这里是如何完成的?考虑到这种依赖性,我们如何在同一解决方案中引用另一个项目以及如何使用 .NET CLI 恢复/构建/运行?

最佳答案

在您定义了解决方案在 global.json 文件中的项目后,您可以通过名称在 project.json 中引用它们,而无需特定版本。

例子:

全局.json

{
"projects":[
"ConsoleProject",
"LibProject"
]
}

ConsoleProject/project.json

{
"dependencies":{
"LibProject":"",
}
}

你可以在这里找到一个更好的例子:http://forums.dotnetfoundation.org/t/referencing-another-project-in-net-core/1298/2

或者在这个存储库中:https://github.com/cartermp/dnx-apps/tree/master/multiple-projects

关于c# - 如何使用 .NET CLI 指定对其他项目的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com