【问题标题】:Adding Nuget Packages From One Project To Another将 Nuget 包从一个项目添加到另一个项目
【发布时间】:2017-06-27 20:01:12
【问题描述】:

我正在使用 Visual Studio 2013。我正在尝试将来自另一个项目的所有 nuget 包添加到该项目中。我将一个项目包下的所有文件夹都复制到了这个项目中,如何添加到 Visual Studio?

我尝试使用包管理器控制台更新 nuget 包,但我不确定要写什么?

我尝试了 Update-Package -Reinstall -Solution Babysitter2 [Babysitter2]

我做错了什么?

这就是我的项目设置的样子。

【问题讨论】:

  • 你到底想做什么?如果两个项目都在同一个解决方案上,你所要做的就是:install-package package-name ... 在包管理器控制台上选择项目,它会注意到包已经安装并且只会添加对你选择的项目的引用,否则你可能想尝试本地存储库
  • 他们不在同一个解决方案中。我应该引用我从中获取的原始项目吗?
  • 然后为什么不通过简单地发出install-package 命令将它们从 Nuget.org 中拉出来,或者您可以在解决方案资源管理器中右键单击您的项目并点击“管理 Nuget 包”项,您将提供一个 UI,也许这对你会更好
  • 正如 Luiso 所说,从 解决方案级别 而非项目级别进行管理。这样,您可以一次将包添加到多个项目中。

标签: c# nuget


【解决方案1】:

项目引用(项目中包含的库)在项目设置(.csproj 文件)中进行跟踪。不应手动管理 packages 目录下的包 - 该目录应该由 nuget 管理,因此您手动放置的任何文件都是错误的。您应该在 packages.config 中列出所需的 nuget 包,然后从 nuget 中恢复它们,这将下载它们并将它们放在包目录中。

【讨论】:

  • 因此,如果我将旧项目中的 packages.config 文件复制并粘贴到新项目中。这会自动将这些 nuget 包添加到我当前的项目中吗?
  • 是的,但我认为它不会添加引用 - 您可能必须复制 .csproj 文件之间的引用(不是整个文件,只是必要的引用!您必须轻松编辑 XML!)执行此操作的“简单”方法实际上只是通过 NuGet 包管理器再次添加相同的包。
【解决方案2】:

只需将现有的packages.config 文件复制到您的新项目中。将此文件包含到项目中。然后跟随Package Manager Console并执行Update-Package -reinstall命令。无需复制packages 文件夹并添加dll 手动引用。

【讨论】:

  • 出现错误 + CategoryInfo : NotSpecified: (:) [Update-Package], InvalidOperationException
  • @N.Sch 在运行更新命令之前尝试删除packages 文件夹。也尝试更新 Nuget。
  • 完美!!谢谢
【解决方案3】:

您只需执行以下操作即可: 工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包

然后您可以在左侧看到解决方案的所有包。单击其中一个,在右侧可以选择要安装的项目。

【讨论】:

  • 这是一种对开发人员友好且简单的方法,可以与同一解决方案中的项目共享包。
  • 这是一种将所有 nuget 包从一个项目复制到另一个项目的繁琐方法,就像问题所问的那样。即使有大约 30 多个包,Alvaro Pereira 的答案也是复制所有包的最快和最简单的方法。
【解决方案4】:

您可以根据另一个项目中已安装的包在新项目上安装包。

  1. 点击“工具/Nuget 包管理器/包管理器控制台”以打开“包管理器控制台”
  2. 在“包管理器控制台”上,粘贴以下命令,将 sourceProject 和 TargetProject 替换为您的项目名称:

    Get-Package -ProjectName sourceProject   | ForEach-Object { Install-Package -Id $_.Id -Version $_.Versions -Projectname targetProject }
    

【讨论】:

  • 这是一个美女。谢谢。
【解决方案5】:

所有已安装的 NuGet 包都保存在 "C:\Users\AhadMavilab.nuget\packages" 如果你的包存在那里,你可以简单地转到项目配置文件并添加你的包引用到项目组。 例如:

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" version="5.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" version="5.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" version="5.0.1" />
  </ItemGroup>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多