use*_*696 5 .net c# .net-core asp.net-core
对于组织代码库的问题,打破大型解决方案通常是多个项目,这很容易在Visual Studio内部的早期版本的.NET Framework中完成.
如何使用.NET CLI完成相同的操作?假设我们有以下简化方案,例如:
- Solution Folder
- global.json
- src
- LibProject
- ConsoleProject
Run Code Online (Sandbox Code Playgroud)
现在假设ConsoleProject取决于LibProject.直觉上我相信,这意味着,在ConsoleProject该project.json会必须包含一个dependencies这样的部分:
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-*"
},
"LibProject": "1.0.0-*"
}
Run Code Online (Sandbox Code Playgroud)
但是如果我们这样做,当我们尝试恢复依赖关系时,ConsoleProject或者当我们尝试构建它时,我们无法做到.当我们尝试恢复时,我们得到了消息
无法为'.NETCoreApp,Version = v1.0'解析'LibProject(> = 1.0.0)'.
我理解原因.在恢复时,NuGet正在尝试将其作为包上指定的Feed NuGet.config.但它不应该这样做,它应该使用兄弟文件夹中的那个.
在以前版本的.NET Core中,我们将通过VS添加引用,然后,如果我们尝试构建它ConsoleProject,VS将首先构建LibProject并使用相应的DLL.
怎么在这里做同样的事情?我们如何在同一解决方案中引用另一个项目?考虑到这种依赖性,我们如何使用.NET CLI恢复/构建/运行?
小智 4
定义解决方案在 global.json 文件上的项目后,您可以在 project.json 上按名称引用它们,而无需指定特定版本。
例子:
全局.json
{
"projects":[
"ConsoleProject",
"LibProject"
]
}
Run Code Online (Sandbox Code Playgroud)
ConsoleProject/project.json
{
"dependencies":{
"LibProject":"",
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到更好的示例:http://forums.dotnetfoundation.org/t/referencing-another-project-in-net-core/1298/2
或者在此存储库中:https://github.com/cartermp/dnx-apps/tree/master/multiple-projects
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |