Nuget dll在/ packages文件夹中,当我们提升到生产时我们应该更改为/ bin吗?

时间:2013-01-18 17:07:17

标签: c# asp.net nuget

似乎nuget包存储在我们的应用程序/包文件夹中。

我感到很困惑,因为我无法在/ bin中找到dll(这是我们用来推广到制作的文件夹)。

我应该只更改对/ bin的引用中的路径并复制local = true吗?

只是想确认,因为我很困惑为什么要去/ package。

2 个答案:

答案 0 :(得分:2)

没有。如果您使用bin作为构建的输出目录,则不应从中引用任何内容。您应该有一个单独的位置,您可以在其中引用您的DLL。当项目构建时,它会将所有必需的DLL / EXE复制到/ bin文件夹。当您执行清理时,这些程序集将被删除。

使用/ bin也可能导致构建模式(调试/发布)出现问题,如何确保在混淆时引用正确的模式。

这个单独的位置似乎可能是您的/ packages目录,但需要更多信息才能确定。

当我必须这样做时,我在项目根目录上创建一个'lib'文件夹,将第三方或预构建的程序集放在那里,并从那里引用它们。复制local = true会将它们复制到我运行(或复制)程序的/ bin文件夹中。如果我正在开发一套程序,'lib'将是我所有程序可以从中获取的共享位置。

答案 1 :(得分:0)

是的,将copy local设置为“true”将是正确的方法。 如果您不希望在.. \ Packages文件夹中提取程序包并希望它位于集中位置 - 例如在源代码控制的根目录或公共lib文件夹中,则可以在nuget.config文件中添加存储库路径。更多细节@ http://docs.nuget.org/docs/release-notes/nuget-2.1#Specify_%e2%80%98packages%e2%80%99_Folder_Location