Skip to content

Commit

Permalink
Merge pull request #1 from AndreyTsvetkov/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
AndreyTsvetkov authored Sep 15, 2016
2 parents 2a8eaac + 63a1e6f commit 5220321
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 14 deletions.
73 changes: 59 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,59 @@
# fast-nuget-update
A simple command line utility to update nuget package installed to many projects of a large solution, when standart tooling is just too slow.

## usage

The tool must be run from the solution folder, assuming the `packages` folder is the child of current and so are the project folders.

-n, --name Required. name of the package to find

-v, --version Required. version of the package to set

-s, --skip-downloading if set, no attempts would occur to download the
package from package sources in the app.config file

# fast-nuget-update ![build static](https://ci.appveyor.com/api/projects/status/ckwopqwiws29cxmn/branch/master?svg=true)
A command line utility for bulk updating nuget packages references.


## case

Consider you work with a huge Visual Studio solution, containing 100 projects.
All of them reference some utility library, say `MyUtil v1.0.0` as a nuget package.
One day a library update `MyUtil 1.0.1` arrives.

You open the `Manage Nuget packages` window, press 'Update', and... the Visual Studio hangs for 10 minutes.

Just to make it faster in simple cases, this utility was introduced.

## restrictions

It is **not** in any sense a replacement of nuget.exe. It is a very silly and simple tool.


It does :
- **not** analyze any dependecies
- **not** support packages where main dll name differs from the package name
- **not** care whether the project is included in the solution or just is laid in the sln folder

## usage

The tool must be run from the solution folder, assuming the `packages` folder is the child of solution and so are the project folders.

So, given a folder tree be like that:

/MySln/
/packages/
/MySln.sln
/FirstProject/
/FirstProject.csproj
/packages.config
/...
/LastProject/
/LastProject.csproj
/packages.config

If we run this cmd:

cd MySln
fast-nuget-update --name MyUtil --version 1.0.1

All projects in MySln folder which referenced **any** version of `MyUtil` will change their references to the `1.0.1` version.

### Parameters list
-n, --name
Required. The name of the package to update

-v, --version
Required. The version of the package to set

-s, --skip-downloading
Optional. Flag. If it set, no attempts would occur to download the
package from package sources in the app.config file

5 changes: 5 additions & 0 deletions src/TS.FastNugetUpdate/TS.FastNugetUpdate.sln
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TS.FastNugetUpdate", "TS.Fa
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TS.FastNugetUpdate.Tests", "..\TS.FastNugetUpdate.Tests\TS.FastNugetUpdate.Tests.csproj", "{5CCB16EF-16A1-476D-A635-04296BD19E1F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6BA28947-A11C-4F1C-A5C3-BB56A9D2F189}"
ProjectSection(SolutionItems) = preProject
..\..\README.md = ..\..\README.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down

0 comments on commit 5220321

Please sign in to comment.