如何摆脱Nuget

时间:2013-11-03 21:07:53

标签: azure nuget

我得出结论,nuget不值得它在源代码控制和部署方面遇到的所有问题。那我怎么摆脱它呢?我想走老路径,将引用的dll放在bin文件夹中,并正常进行配置更改。

2 个答案:

答案 0 :(得分:1)

我们有一个类似的问题,我可以在某种程度上看到你的观点--NuGet在我的解决方案级别创建的packages文件夹是好的,它将所需的依赖项整理到一个文件夹中供该解决方案中的项目使用 - 但是,当我们的开发人员尝试将解决方案代码推送到源代码控制中时,它确实成为一个问题,因为我不想在每个解决方案中存储EntityFramework.dll文件夹,特别是它随附的所有gumph。 (顺便说一下,我个人认为.dll甚至不应该致力于源代码控制!)

但是就你摆脱它的问题而言,我并不完全确定它现在已经融入到Visual Studio中,但是这里有一个你可以尝试的改变:

在Visual Studio中,转到工具>选项>包管理器>包装来源。取消选中使“NuGet官方包源”可用的框。理论上,这应该使您的IDE无法使用NuGet API。

希望这有帮助。

答案 1 :(得分:1)

我的团队选择使用NuGet进行发现(我们喜欢它),与我们的活动项目分开,并通过另一种方式管理我们的参考,以实现控制和极简主义。这就是我们从这些项目中删除NuGet的方法:

  • 首先,卸载项目中的NuGet包(此时可选择重新添加没有NuGet的引用,或者最后)
  • 在与解决方案文件(.sln)相同的文件夹中,可能有一个.nuget文件夹,如果该文件夹中没有其他解决方案依赖NuGet,则应删除该文件夹。
  • 在每个项目文件夹中,删除packages.config文件。如果未将其签入源代码控制,则每个开发人员都需要从受影响的每个分支中的每个项目中删除packages.config。
  • 在每个项目文件(.csproj)中,PropertyGroup部分中有两行应删除:

    < SolutionDir Condition =" $(SolutionDir)==''或$(SolutionDir)==' 未定义'"> ...< / SolutionDir> < RestorePackages>真< / RestorePackages>

  • 每个项目文件底部还有一个部分(我在这个位置看到过多个化身,所以这只是一个例子)

    < Import Project =" $(SolutionDir).nuget \ nuget.targets"条件="已存在(' $(SolutionDir).nuget \ NuGet.targets')" />

您必须与您的团队协调。如果有人在其目录中打开包含带有packages.config文件的项目的解决方案,NuGet将撤消上面的手动编辑;特别是如果你打开了自动检查。