NuGet for solutions with multiple projects

前端 未结 6 1037
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-02 04:39

Suppose I have a solution with 3 projects:

  • Core
  • UI
  • Tests

Some of the NuGet packages I use will apply to all 3 projects. Some w

相关标签:
6条回答
  • 2020-12-02 05:21

    In Package Manager Console you can write the following command:

    Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter 
    PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package 
    PACKAGE_NAME -Version VERSION
    

    You can use that command for install or update as well (Update-Package)

    0 讨论(0)
  • 2020-12-02 05:22

    Use the console to target multiple projects

    Tools > Library Package Manager > Package Manager Console
    

    then use this command

    Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME
    

    for example

    Get-Project Core,UI | Install-Package FluentDateTime
    
    0 讨论(0)
  • 2020-12-02 05:23

    This sweet deal works for me:

    PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
        $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
        | ForEach-Object {Install-Package MvvmLight -project $_.Name}
    
    0 讨论(0)
  • 2020-12-02 05:25

    You should use the "Add Library Package Reference" for all your external library on every project in your solution. You'll end up with a packages.config per project.

    However, you'll download the package only one time and reuse them locally for all your other projects.

    0 讨论(0)
  • 2020-12-02 05:27

    For anybody stumbling across this, now there is the following option :

    Right-click your solution > Manage NuGet Packages for Solution...

    ... Or:

    Tools > Library Package Manager > Manage NuGet Packages for Solution...

    And if you go to the Installed packages area you can 'Manage' a single package across every project in the solution.

    0 讨论(0)
  • 2020-12-02 05:41

    If you want to install a package across multiple solutions I wrote a handy Powershell script for doing it, see here.

    You can even filter the Get-Project -All command and target a sub-set of the project list.

    0 讨论(0)
提交回复
热议问题