【问题标题】:adding reference .net core web api project on vscode在 vscode 上添加参考 .net core web api 项目
【发布时间】:2017-07-28 23:10:52
【问题描述】:

我正在使用 .Net Core 目标框架在 vscode 上开发一个 WebApi 项目。我有这样的场景,部分代码 (db 交互和常用工具) 将成为其中的一部分除了这个特定的 WebApi 项目之外,还有许多其他独立的项目。所以我决定将它作为另一个项目单独编码在另一个文件夹中..

但我不知道我将如何做到这一点。无论是作为项目引用还是作为依赖项的输出文件,都没有关系,我想不出在第一个项目中使用第二个项目.. 我基本上只是想构建一个与.net core 兼容的库,并在许多其他.net core 项目中使用它。

我需要一些指南和最佳实践建议。

更新:

我想我已经找到了一种方法,而且它现在似乎正在工作。

1- 将<ProjectRefence> 添加到 FirstProject.csproj 文件:

<ProjectReference Include="..\SecondProject\SecondProject.csproj"></ProjectReference>

2- 将project.json 文件添加到 FirstProject 并设置 SecondProject 的依赖项。

{
    "dependencies": {
        "SecondProject": {
            "target": "project"            
        }
    }
}

3- dotnet restore 并构建。

4- 重新启动 vscode 以获得正确的智能。


2020 年更新

当我问这个问题时,我对 VS Code 环境太陌生了。我期待一些 IDE 功能可以相互引用项目。

【问题讨论】:

    标签: c# asp.net-web-api visual-studio-code .net-core projects-and-solutions


    【解决方案1】:

    根据您的操作系统/IDE/.Net Core 版本,您可能需要也可能不需要 CSPROJ 更新。我认为您需要它们与 .Net Core 2+ / VS17+ 一起出现,可能还有其他一些工具组合。

    您可能需要扩展您的 dependencies 块。我发现基于OS和IDE,有时候需要专门调出一些依赖;它们并不总是传递过来的。例如,当我引用另一个项目时,我最终得到了一个这样的块,以便编译:

    "dependencies": { "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" }, "NETStandard.Library": "1.6.1", ... "OtherProjectNameHere": { "target": "project" } },

    您的特定依赖项会有所不同。

    您可能还需要以类似的精神对 frameworks 块进行调整。

    您可以考虑的更严格的选择是将您的库 /SecondProject 放入其自己的存储库中,并将其作为 NuGet 包使用。如果这是一个您将在多个项目或多个团队中使用的库,您可能会受益于包引用而不是项目引用。你会得到:

    • 您的库的版本号,以便您可以更轻松地回答诸如“我对该库所做的更改是否包含在我的此应用的构建中”之类的问题,以及版本控制带来的所有外围优势。
    • 关注点分离,以确保您的库保持通用性,并且不会以一个应用程序的硬编码内容告终。
    • 更轻松地添加引用(只是一个版本号,就像其他任何东西一样)
    • 更轻松地与其他团队共享库。 ... 等等。

    简而言之,图书馆也是产品。如果您在一家有意义的公司/情况下,您可能希望像对待它一样对待它。

    【讨论】:

    • 谢谢.. NuGet 包解决方案实际上非常适合我的情况并且很有意义。我运行 "dotnet pack" 命令并将我的 .nupkg 文件放在 bin/Debug 文件夹中。这里再次缺乏关于如何使用该文件作为参考而不将其在线上传到 nuget 服务器的知识。. 搜索引擎在这件事上并没有真正帮助我,或者我使用了我不知道的错误搜索词..
    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2021-05-25
    • 2016-11-16
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多