mpt-nuget

mono-packaging-tools, Разработка на C# под linux
 
packages.config - это XML-файл со списком пакетов, которые будут восстанавливаться при открытии .sln или .csproj
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="log4net" version="1.2.10" />
  <package id="NLog" version="1.0.0.505" />
  <package id="Castle.Core" version="1.2.0" />
  <package id="Castle.DynamicProxy" version="2.2.0" />
</packages>

Где этот файл размещается?

Most packages will install into a project.
A few will install into a solution since they are solution only packages.
A solution-level package is one that installs a tool or additional commands for the Package Manager console, but does not add references, content, or build customizations to any projects in your solution.
One example is a OpenCover which will not install into a project.
For example, the psake package installs Powershell scripts you can use to automate your build process.
Solution only NuGet packages will update the
.nuget/packages.config
A package is considered a solution-level package if it does not contain any files in its lib, content, or build directories. If the package has dependencies, they also must not have files in their lib, content, or build directories.
When a solution-level package is installed, it is tracked in a packages.config file in the .nuget directory, rather than in a packages.config file in a specific project.

Где они лежат?

I see a packages.config file for each of my projects in a solution.

Make sure packages.config is included in the visual studio project, otherwise it will not be used.

Как создать Solution level package?

I was mistakenly creating and installing a solution-level package. This was because I was not adding the dll to the lib folder when creating nuget packages
https://docs.nuget.org/create/creating-and-publishing-a-package

Операции

которые может захотется с ним проделать:
1) удалить целиком, потому что сборки можно использовать из GAC
(но в этом случае, наверное, надо поискать этот файл в проекте, он там наверное добавлен как Item, и оттуда его удалить. Иначе, наверное, будет выдана ошибка, что этот файл не найден. А может и не будет выдана - надо бы проверить)
2) удалить отдельные строчки
(это когда часть пакетов уже опакечена из исходников, а часть - нет)
Можно развить эту функцию до "заменить все указанные на имеющиеся в наличии локально". Для этого надо уметь просматривать, какие имеются локально - видимо в portage.
3) просто изменить одни версии на другие, которые нужны

Default Project

The syntax of installing a package through package manager console is this:

Syntax:

Install-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>] [-Source <string>] [-IncludePrerelease] [-Force] [-FileConflictAction] [-DependencyVersion <dependencyVersion>] [-WhatIf]

To install a package in a particular project you have to use the following command:

PM> Install-Package somePackage -Project myProject

If you omit the -Project parameter the default project (from the drop-down) is chosen.

Как скачать пакеты

в Visual Studio
Tools->options->Package Manager->Allow NuGet to download missing packages