CopyLocalLockFileAssemblies(设置为true)完全适应将nuget依赖项* .dll复制到输出文件夹。但是在构建之后有许多冗余库(Microsoft,System等...)。我需要某种过滤来处理这个烂摊子。是否有优雅的解决方案来解决问题或只有解决方法?
如果库真的是冗余的,则不会将它们复制到输出中。真的需要很多System。*和Microsoft。*库,特别是如果你从NuGet获得的新版本比你运行的框架更新(例如,.NET Core 1.0依赖于更新的库)。
如果您确实想这样做,可以将以下内容添加到csproj文件中以过滤掉程序集:
<Target Name="FilterCopyLocalItems" AfterTargets="ResolveLockFileCopyLocalProjectDeps">
<ItemGroup>
<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="'%(Filename)' == 'Newtonsoft.Json'" />
</ItemGroup>
</Target>
您可以在此处使用任何MSBuild条件,例如字符串方法:
Condition="$([System.String]::Copy('%(Filename)').Contains('HttpSys'))"