在我工作的公司中,每个解决方案中都有一个文件夹 packages ,其中包含所有dll依赖项。该文件夹不在解决方案的其余部分中。
每次构建一个项目时,文件夹 packages 中的所有文件都会还原,并且所有丢失的dll都会再次出现。无论构建是否成功,都将在构建开始时发生。即使项目没有dll依赖项,也将还原 packages 中所有丢失的dll。
我怀疑这是msbuild中的设置,但找不到。有人知道它可能在哪里,或者是否存在msbuild * .targets文件的地方?
感谢您的帮助
答案 0 :(得分:2)
答案 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。