Nuget解决了传统项目参考不能解决的问题是什么?

时间:2014-09-30 02:43:46

标签: .net visual-studio nuget

我正在寻找NuGet正在解决的具体问题的简单解释。特别针对那些在亲吻中取得成功的开发人员#34; Add Reference"机构。

例如,以下链接说明了"问题"是源签到不包括项目参考。据我所知,这是不正确的,因为它们直接列在通常签入的项目文件中。如果我误解了该陈述,请提前道歉。

http://www.techrepublic.com/blog/software-engineer/simplify-package-management-with-nuget/

什么样的收益保证了复杂性的增加,因为现在似乎有多个参考来源和新手,追踪4(?)典型的互动来源之间发生的事情要困难得多:

  • 项目参考,
  • Nuget在machine.config和
  • 的引用
  • Nuget packages.config
  • App.Config中。

背景:这源于对一个问题进行故障排除时的挫败感,在这个问题中有人声称在某些情况下,启动标记的顺序必须在app.config中最后。另一个链接提到必须运行msi才能使特定包对其他Windows程序有用。

奖励要点,说明当参考文献中列出一个版本但nuget列出竞争版本时会发生什么。

3 个答案:

答案 0 :(得分:1)

下载不是您的计算机的库会更容易吗?所以你只需输入一行就可以下载它们。它会立即添加一个参考。

答案 1 :(得分:0)

我发现在没有花费太多时间的情况下快速尝试包装非常有用。它会快速添加引用和默认配置参数,如果我不喜欢它,则很容易将其退出。虽然另一方面,一旦我使用了一些我自定义配置的软件包,如果我想要升级,就可以了。

答案 2 :(得分:0)

源文件不包含项目引用。它们仅包含引用本身。如果引用位于硬盘驱动器上并且未包含在项目中,则它不会被检入。这就是为什么许多项目在解决方案文件夹中创建依赖项文件夹,在那里添加依赖项,以及将它们添加到解决方案文件夹中的VS解决方案,然后引用依赖项。这是他们永远被检查的唯一方式。

Nuget消除了确定特定包所需的依赖关系的需要。它会为您跟踪更新的包和冲突。它可以使用非.NET项目,如bootstrap和jQuery。

它对machine.config没有任何影响,因为这些项目仅在当前项目中。这意味着您可以根据需要使用同一软件包的不同版本的多个解决方案,而无需在本地安装它们或添加会对其他解决方案产生负面影响的其他设置。