首页 > 解决方案 > 跨项目的 Nuget 包复制

问题描述

Nuget 包副本在 .Net Core 中是否可行?我很担心,因为既没有 project.json 也没有 package.config。这是否意味着手动编辑 .csproj 是前进的唯一途径。

恕我直言,必须有更有效的方法。我是不是错过了什么。

标签: .net-core

解决方案


我使用共享Directory.Build.props文件为 .NET Core 2.0 跨多个项目构建相同的包。因此,如果您将此文件放在所有项目的共享文件夹中,并在创建新项目后简单地导入它,它确实可以节省大量时间。

首先创建一个共享Directory.Build.props文件。下面我为我的所有项目添加 NLog 包。文件示例内容:

<Project>
  <ItemGroup>
    <PackageReference Include="NLog" Version="4.5.6" />
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.5.4" />
  </ItemGroup>
</Project>

现在通过右键单击项目 1 > 添加 > 现有项目 > Directory.Build.props 将此文件导入项目的根目录。对您的其他项目重复相同的操作;项目 2、项目 3 等。请注意,当您将每个文件添加到项目中时;Directory.Build.props 文件中的 NLog 包会自动添加为 Nuget 包。

只需为您的包编辑 XML 和更多包引用<ItemGroup></ItemGroup>。我希望这对您来说是更有效的解决方案。这无疑为我节省了很多新的 .NET Core 项目的时间。您可以在此处阅读有关自定义构建的更多信息。


推荐阅读