Обновление файлов в существующем пакете Nuget - PullRequest
1 голос
/ 09 июня 2011

У меня есть мультипроектное решение ASP.NET Web Forms Application. Мне нужно поделиться главной страницей (3 файла), некоторыми пользовательскими элементами управления и некоторыми изображениями, сценариями и CSS-файлами для других проектов в решении.

Я уже создал пакет с помощью NuGet Package Explorer в соответствии с документацией:

http://docs.nuget.org/docs/creating-packages/using-a-gui-to-build-packages

Моя текущая проблема заключается в следующем: я обновил общие файлы в корневом проекте, и теперь я хочу обновить пакет, прежде чем загружать его в другие проекты (пакет в настоящее время находится в локальной папке на моем компьютере разработчика). Как мне это сделать?

Если у кого-нибудь есть ссылки для быстрого начала работы с NuGet, пожалуйста, поделитесь, поскольку официальные документы просто не делают этого для меня.

Ответы [ 4 ]

1 голос
/ 10 июня 2011

создайте пакет заново с новой версией, иначе, если оригинал равен 1.0, создайте этот 1.1, и NuGet подберет обновление.

0 голосов
/ 02 июля 2019

Файл NuGet, в конечном счете, представляет собой просто zip-файл. Вы можете обновить записи, используя все, что может обновить ZIP-файл. Например, что-то вроде

using System.IO.Compression;
using System.IO.Compression.FileSystem;

// EG: AddOrUpdateZipEntry("mypackage.nupkg", "my.dll", "bin/my.dll")
void AddOrUpdateZipEntry(string zipFilePath, string contentsFilePath, string entryPathInZip)
{
    using (var zip = ZipFile.Open(zipFilePath, ZipArchiveMode.Update))
    {
        zip.GetEntry(entryPathInZip)?.Delete(); // Remove any existing entry first.
        zip.CreateEntryFromFile(contentsFilePath, entryPathInZip);
    }
}
0 голосов
/ 24 февраля 2015

Я уже делал это раньше. Вам просто нужно увеличить версию вашего пакета внутри метаданных файла .nuspec.

В моем случае имена моих пакетов: ' [имя]. [Версия] .nupkg ', поэтому я сохраняю свой новый пакет как ' [имя]. [Версия + 1 ]. Nupkg '.

Обновление появляется в разделе «Управление пакетами nuget».

0 голосов
/ 10 июня 2011

Вы спрашиваете, что вам нужно сделать, чтобы обновить проекты, которые уже используют пакет?

Ключевым моментом в этом сценарии является просто управление версиями. Новая версия файла будет опубликована. Снова свяжите пакет с новым номером версии, а затем запустите Update-Package из консоли диспетчера пакетов в VS.

Вы также можете рассмотреть несколько дискретных пакетов, а не один прямой. Если вы хотите обновить пару изображений или файл CSS, но не MasterPage, лучше всего иметь пару меньших.

Используйте PM Explorer (из упомянутого вами поста), чтобы открыть пару пакетов из основного репозитория NuGet, в частности, jQuery 1.5.1 и 1.6.x, и посмотрите, как они будут выполнять очень похожие вещи. Никакая настоящая магия не нужна!

Приветствие.

...