CopyLocalLockFileAssemblies过滤

问题描述 投票:1回答:1

CopyLocalLockFileAssemblies(设置为true)完全适应将nuget依赖项* .dll复制到输出文件夹。但是在构建之后有许多冗余库(Microsoft,System等...)。我需要某种过滤来处理这个烂摊子。是否有优雅的解决方案来解决问题或只有解决方法?

msbuild nuget nuget-package asp.net-core-2.0
1个回答
1
投票

如果库真的是冗余的,则不会将它们复制到输出中。真的需要很多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'))"
© www.soinside.com 2019 - 2024. All rights reserved.