1

我有一个多项目 ASP.NET Web 窗体应用程序解决方案。我需要将母版页(3 个文件)、一些用户控件和一些图像、脚本和 CSS 文件共享给解决方案中的其他项目。

我已经根据文档使用 NuGet 包资源管理器创建了一个包:

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

我当前的问题是:我已经更新了根项目中的共享文件,现在我想在将包拉入其他项目之前更新包(包当前位于我的开发机器上的本地文件夹中)。我该怎么做呢?

如果有人有一些快速入门的 NuGet 链接,请分享,因为官方文档并没有为我做这件事。

4

4 回答 4

3

如果原始版本是 1.0,则使用新版本再次创建包,然后将其设置为 1.1,NuGet 将获取更新。

于 2011-06-09T23:33:22.827 回答
1

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);
    }
}
于 2019-07-02T10:04:01.673 回答
0

您是否在问需要做什么来更新已经在使用该软件包的项目?

在这种情况下,关键是版本控制。该文件的新版本将被删除。使用新版本号再次捆绑包,然后从 VS 中的包管理器控制台运行 Update-Package。

您可能还想考虑几个谨慎的包,而不是一个直接的包。如果您想更新几个图像或一个 CSS 文件,而不是 MasterPage,最好有几个较小的文件。

使用 PM Explorer(来自您提到的帖子)从 NuGet 主存储库打开几个包,特别是 jQuery 1.5.1 和 1.6.x 并查看,因为它们将做非常相似的事情。不需要真正的魔法!

干杯。

于 2011-06-09T20:37:30.957 回答
0

我以前已经做过了。你只需要在 .nuspec 文件的元数据中增加你的包的版本。

就我而言,我的包名称是' [name].[version].nupkg ',所以我也将我的新包保存为' [name].[version +1 ].nupkg '。

更新出现在“管理 nuget 包”更新部分。

于 2015-02-24T19:50:22.997 回答