我有一个多项目ASP.NET Web Forms应用程序解决方案。我需要将一个母版页(3个文件),一些用户控件和一些图像,脚本和CSS文件共享给解决方案中的其他项目。
我已根据文档使用NuGet Package Explorer创建了一个包:
http://docs.nuget.org/docs/creating-packages/using-a-gui-to-build-packages
我目前的问题是:我已经更新了根项目中的共享文件,现在我想更新包,然后将其拉入其他项目(当前包在我的开发机器上的本地文件夹中)。 我该怎么做?
如果有人有一些快速入门的NuGet链接,请分享,因为官方文档并不是为我做的。
答案 0 :(得分:1)
使用新版本再次创建包,如果原始版本为1.0,则生成此1.1并且NuGet将获取更新。
答案 1 :(得分:0)
您是否在询问如何更新已使用该软件包的项目?
这种情况下的关键是简单的版本控制。新版本的文件将被淘汰。使用新版本号再次捆绑软件包,然后从VS中的软件包管理器控制台运行Update-Package。
您可能还需要考虑一些谨慎的软件包,而不是一个直接的软件包。如果你想更新一些图像或一个CSS文件,而不是MasterPage,那么最好还是有一些较小的那些。
使用PM Explorer(来自你提到的帖子)从NuGet主存储库打开几个包,特别是jQuery 1.5.1和1.6.x,看看,因为这些将做非常类似的事情。不需要真正的魔力!
干杯。
答案 2 :(得分:0)
我之前已经做过了。您只需在.nuspec文件的元数据内增加包的版本。
在我的情况下,我的包名称是' [name]。[version] .nupkg '所以我将我的新包保存为' [name]。[version + 1 ]。nupkg '。
“管理nuget包”更新部分中的更新显示。
答案 3 :(得分:0)
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);
}
}