以两种方式参考项目



我有一个名为framework的项目,我有依赖于这个框架项目的模块项目。

问题是:我团队中的一些开发人员会有这个框架代码,而其他人不会。我想知道,如果Visual Studio没有找到这个引用,它是否会自动从nuget包中获取这个框架库。

只有在项目确实存在的情况下,才可以使用Condition来包含该项目:

<ProjectReference Include="....FrameworkFramework.csproj" Condition="Exists('....FrameworkFramework.csproj')" />
<PackageReference Include="MyCompany.Framework" Version="1.0.0" Condition="!Exists('....FrameworkFramework.csproj')" />

您有两个选项可以引用其他项目:

项目参考资料

这通常使用单回购方法来完成,大多数情况下所有项目都是同一解决方案的一部分。

如果你想引用其他存储库中的项目,Git子模块可能是一个选项https://git-scm.com/book/en/v2/Git-Tools-Submodules

项目引用在my-Project.csproj文件中如下所示:

<ProjectReference Include="....ModulesCoreCore.csproj" />

NuGet包

在这里,您可以构建您的框架并将其发布为NuGet包。然后,在需要时引用包(而不是项目(,Visual Studio将从NuGet存储库下载指定的版本。

设置自己的NuGet存储库的两个选项:

  • https://learn.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops
  • https://www.sonatype.com/nexus-repository-oss

您也可以从本地文件系统使用NuGet包。如何在本地安装NuGet包.nupkg文件?(就我个人而言,我不建议在大多数情况下这样做(

在my-project.csproj文件中引用NuGet包:

<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />

或者使用visual Studio软件包管理器:https://learn.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio

请注意,您必须首先添加NuGet存储库提要:https://learn.microsoft.com/en-us/azure/devops/artifacts/nuget/consume?view=azure-devops

另请参阅

  • 如果不在.NET Core中,是否可以引用解决方案中存在的项目并使用NuGet包引用作为回退

最新更新