如何确保nuget程序集是通过包添加而不是仅引用DLL文件?

时间:2014-10-16 22:16:12

标签: visual-studio msbuild nuget nuget-package

我注意到很多次开发人员倾向于通过浏览.dll文件夹下的.\packages文件夹(由另一个项目安装)直接引用程序集,并将其添加到项目引用而不是安装nuget该项目的包装。在这种情况下,即使它编译,但Nuget包管理器不知道引用的程序集来自包,因此更新解决方案范围的包不会更新该项目中的那些引用。如果您正在进行面向服务的体系结构,其中应用程序中的每个功能部件都是解决方案中的单独项目,那么您可能拥有数百个项目,并且管理这些引用将成为一场噩梦。有没有办法阻止开发人员直接引用程序集,如果它们属于nuget包?例如,是否有任何MSBuild任务来验证对程序包程序集的所有引用都需要在项目上安装程序包?

1 个答案:

答案 0 :(得分:1)

如果您的团队使用resharper,他们会有一个插件来帮助解决这个问题:

http://blog.jetbrains.com/dotnet/2012/11/20/add-packages-not-references-a-nuget-plugin-for-resharper/

我猜这个问题是由没有它的人使用resharper引起的,因为默认情况下VS不知道包含该DLL但是Resharper会找到它并引用它(而不是更新包配置而不是插件)

也可以让人们在解决方案级别使用nuget,而不是项目级别。这将迫使人们更新整个解决方案中的所有nuget包,而不是在项目A上使用V 1.1.1.0而在项目B上使用v 1.1.2.0。