Visual Studio自动还原DLL包

时间:2018-11-29 14:17:08

标签: c# visual-studio msbuild dll-dependency

在我工作的公司中,每个解决方案中都有一个文件夹 packages ,其中包含所有dll依赖项。该文件夹不在解决方案的其余部分中。

每次构建一个项目时,文件夹 packages 中的所有文件都会还原,并且所有丢失的dll都会再次出现。无论构建是否成功,都将在构建开始时发生。即使项目没有dll依赖项,也将还原 packages 中所有丢失的dll。

我怀疑这是msbuild中的设置,但找不到。有人知道它可能在哪里,或者是否存在msbuild * .targets文件的地方?

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

这是因为Visual Studio还原了packages.config文件中定义的包。

您可以在Visual Studio中的选项中控制此行为: VS NuGet options

答案 1 :(得分:1)

MS Docs中有关Nuget的内容:

  

MSBuild:使用msbuild -t:restore命令恢复包   项目文件中列出的软件包(仅PackageReference)。可用的   仅在Visual附带的NuGet 4.x +和MSBuild 15.1+中   Studio2017。nuget restore和dotnet restore都使用此命令   适用的项目。

进一步,以多种方式启用/禁用和修改此行为有很多。

  

允许NuGet下载缺少的软件包:控制所有形式的   通过更改以下选项中的packageRestore / enabled设置来还原软件包   NuGet.Config文件如下所示(%AppData%\ NuGet \ NuGet.Config位于   Windows,在Mac / Linux上为〜/ .nuget / NuGet / NuGet.Config)。在Visual Studio中,   此设置允许在   解决方案的上下文菜单起作用。

似乎对您的问题更感兴趣:

  

在Visual中构建期间自动检查丢失的软件包   Studio:通过更改   NuGet.Config文件中的packageRestore / automatic设置,如图所示   下面(Windows上的%AppData%\ NuGet \ NuGet.Config,   在Mac / Linux上为〜/ .nuget / NuGet / NuGet.Config)。设置此选项后,   从Visual Studio运行构建会自动还原所有丢失的内容   包。该选项不影响从命令行运行的构建   使用MSBuild。