我正在使用.Net Core目标框架在vscode上开发一个WebApi项目。我有这种情况,代码(db interaction和common utils)的某些部分将成为许多其他独立的项目,而不是这个特定的WebApi项目。所以我决定将它作为另一个项目在另一个文件夹中单独编码..
然而我无法弄清楚我将如何做到这一点。无论是作为项目引用还是作为依赖项的输出文件,都无关紧要,我无法想出在第一个项目中使用第二个项目..我只是想构建一个与.net核心兼容的库,并在许多其他.net核心项目中使用它。
我需要一些指南和最佳实践建议。
更新:
我想我找到了一种方式,现在似乎正在起作用.. 但我仍然想知道其他更好的选择而不是这个。
1-将<ProjectRefence>
添加到FirstProject.csproj文件:
<ProjectReference Include="..\SecondProject\SecondProject.csproj"></ProjectReference>
2-将project.json
文件添加到FirstProject并为SecondProject设置依赖项。
{
"dependencies": {
"SecondProject": {
"target": "project"
}
}
}
3- dotnet restore
并构建。
4-重新启动vscode以获得正确的智能。
答案 0 :(得分:1)
根据您的OS / IDE / .Net Core版本,您可能需要也可能不需要CSPROJ更新。我认为你需要它们与.Net Core 2+ / VS17 +,以及其他一些工具的排列。
您可能需要展开{{1}}块。我发现基于操作系统和IDE,有时我需要专门调出一些依赖项;他们并不总是过渡性的。例如,在引用另一个项目时,我最终得到了这样的块,以便编译:
dependencies
您的特定依赖关系会有所不同。
您可能还需要以类似的精神对"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"NETStandard.Library": "1.6.1",
...
"OtherProjectNameHere": { "target": "project" }
},
块进行调整。
您可以考虑的更严格的选项是将您的库/ frameworks
放入其自己的存储库中,并将其作为NuGet包使用。如果这是一个您将在许多项目或许多团队中使用的库,您可能会受益于程序包引用而不是项目引用。你会获得:
简而言之,图书馆也是产品。如果您处于有意义的公司/情况中,您可能希望将其视为一个。