首页 文章

如何在解决方案中将NuGet包安装到第二个项目中?

提问于
浏览
183

我目前正在开发一个最初包含一个项目( My.First.Project.Name )的解决方案 . 我通过执行以下命令安装了Castle Windsor:

Install-Package Castle.Windsor

我刚刚在解决方案中添加了另一个项目( My.Second.Project.Name ),并希望将Castle Windsor安装到这个项目中,但是当我再次运行 Install-Package Castle.Windsor 时,我收到错误:

'Castle.Core 2.5.2'已安装'Castle.Windsor 2.5.2'已经安装My.First.Project.Name已经引用'Castle.Core 2.5.2'My.First.Project.Name已经有引用'Castle.Windsor 2.5.2'

所以我的问题是:如何说服NuGet软件包管理器将软件包安装到第二个项目中?

7 回答

  • 309

    有3种方法:) .
    在NuGet 1.1(最新版本)中,我们改进了powershell管道,因此您可以这样做:

    Get-Project -All | Install-Package SomePackage
    

    这将在您的所有项目中安装“SomePackage” . 您可以使用通配符来缩小哪些项目:

    Get-Project Mvc* | Install-Package SomePackage
    

    这将使用通配符语义(在这种情况下,查找以mvc开头的所有项目) .

    Get-Project SomeProject | Install-Package SomePackage
    

    这将把SomePackage安装到SomeProject中,而不是别的 .

  • 8

    有两种方法 .

    如您所知,软件包管理器控制台有一个下拉列表,列出了解决方案中的项目 .

    另一种方法是使用-Project标志 . 关于它的好处是它为您提供了Intellisense项目名称!例如:

    Install-Package SomePackage -Project MvcApplication2
    
  • 6

    答案是,令人尴尬的是,盲目地简单 .

    "Package Manager Console"在其工具栏中有一个 Headers 为"Default Project"的下拉列表,将项目更改为 My.Second.Project.Name ,然后允许 Install-Package Castle.Windsor 将包安装到第二个项目中 .

  • 12

    在Visual Studio 2015中(从Nuget v3.1.2开始),语法现在是:

    Install-Package ThePackage -ProjectName YourProjectName
    

    注意:-Project Name vs -Project

  • 0

    在Visual Studio中,您可以转到 Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution . 从那里,选择要在项目之间共享的Nuget包,然后单击 Manage . 这将允许您将特定的已安装NuGet包添加到您想要的任何其他项目 .

  • 136

    如果您只需要将包从现有项目复制到新项目,只需将packages.config文件复制和/或修改为新项目并运行 Update-Package -reinstall -Project YourProjectName

  • 77

    还有强制重新安装的选项 . 有些问题,这对我有帮助 .

    Update-Package Microsoft.Owin -Reinstall
    

相关问题