没有nuget包管理器的Nuget包?

时间:2011-04-20 09:50:30

标签: .net asp.net-mvc nuget

除了编译的库之外,nuget包实际上包含什么?

是否可以在不使用软件包管理器的情况下下载这些软件包并在其他地方使用它们?

谢谢!

9 个答案:

答案 0 :(得分:29)

答案 1 :(得分:13)

  

除了编译的库之外,nuget包实际上包含什么?

Take a look here。基本上它是一个带有.nupkg扩展名的文件,它只不过是一个.zip文件,其中包含上一个链接中解释的结构和一些xml元数据。

  

是否可以在不使用软件包管理器的情况下下载这些软件包并在其他地方使用它们?

当然,只需下载.nupkg文件。

答案 2 :(得分:7)

根据@ Gth685的回答,我制作了一个Google Chrome扩展程序,为http://nuget.org

上的打包页面添加下载链接

https://chrome.google.com/webstore/detail/nutake/ibhhbcaipjilldjkhhblhgdedjgoecap?hl=en

答案 3 :(得分:2)

大家都知道,你可以在nuget.org上创建一个帐户。登录后,左侧工具栏上将显示下载链接,您可以直接下载任何.nupkg文件。

答案 4 :(得分:1)

补充评论: 下载* .zip(示例jquery)后,将结尾从* .zip更改为* .nupkg然后您就可以使用VS中的Package Manager安装它们。 也许只是我一段时间不得不考虑它。如果没有,希望它有所帮助。

答案 5 :(得分:1)

对不起,这应该是评论,但我没有足够的代表。

根据this answer中提到的Chrome扩展程序生成的html,我们可以通过注意下载非最新的包来改进gth685f's answer,网址为packages.nuget.org/api/v2/package/<PACKAGE_YOU_WANT>/<VERSION_NUMBER>(请注意增加的API版本号。)

答案 6 :(得分:0)

只是补充一点,V2 api的格式与使用浏览器下载软件包的V1相同。

http://packages.nuget.org/api/v2/package/ /

答案 7 :(得分:0)

引用NuGet可能会在某些(大多数?)时间内工作,但您也可能遇到版本问题。例如,尝试将Microsoft HTTP Client Libraries NuGet package添加到.NET 4项目并检查生成的csproj文件。

首先,您会注意到某些BCL程序集已被覆盖:

  1. System.IO.dll
  2. System.Runtime.dll
  3. System.Threading.Tasks
  4. 现在所有引用项目都必须使用这些覆盖(因为您无法引用同一程序集的多个版本)。除此之外,它意味着您将丢失对这些程序集的更新(除非BCL NuGet包也更新)。

    您还会注意到您的csproj包含以下条目(如果删除它将无效):

    <Import Project="..\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets')" />
    

    我对MSBuild不了解,但我猜这可能会影响您的构建环境。

答案 8 :(得分:-2)

您还可以使用命令行工具nuget.exe下载nupkg文件,如下所示:

nuget install packageId

获取最新版本,或

nuget install packageId -Version version

获取特定版本。