Msbuild CopyLocalLockFileAssemblys筛选

Msbuild CopyLocalLockFileAssemblys筛选,msbuild,nuget,nuget-package,asp.net-core-2.0,Msbuild,Nuget,Nuget Package,Asp.net Core 2.0,CopyLocalLockFileAssemblys(设置为true)可以完美地将nuget dependencies*.dll复制到输出文件夹。但在构建之后,有许多冗余库(Microsoft、System等)。我需要某种过滤来处理这种混乱。是否有优雅的解决方案来解决问题,或者只有变通办法?如果库确实是冗余的,它们就不会被复制到输出中。确实需要很多System.*和Microsoft.*库,特别是如果您从NuGet获得比您运行的框架中更新的版本(例如,依赖于更新库的NET Core 1.0) 如

CopyLocalLockFileAssemblys(设置为true)可以完美地将nuget dependencies*.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>

好的,但我不需要它们,这就是为什么我要问过滤。然后你需要删除NuGet包。如果它们没有在本地复制,它们仍然从NuGet缓存中使用。
Condition="$([System.String]::Copy('%(Filename)').Contains('HttpSys'))"