Created
February 3, 2018 10:20
-
-
Save dasMulli/d343e95edd4be7a629f85b29c7d78fde to your computer and use it in GitHub Desktop.
Update all package references
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Project> | |
<Target Name="_CollectPackagesToUpdate" Returns="@(_PackageToUpdate)"> | |
<ItemGroup> | |
<_PackageToUpdate Include="@(PackageReference)" Condition="'%(PackageReference.IsImplicitlyDefined)' != 'true' and '%(PackageReference.DoNotUpdate)' != 'true'" | |
TargetFramework="$(TargetFramework)" /> | |
</ItemGroup> | |
</Target> | |
<Target Name="_UpdatePackagesSingleTfm" DependsOnTargets="_CollectPackagesToUpdate" Condition="'$(TargetFramework)' != '' and '$(TargetFrameworks)' == ''"> | |
<Exec Command="dotnet remove "$(MSBuildProjectFile)" package %(_PackageToUpdate.Identity) && dotnet add "$(MSBuildProjectFile)" package %(_PackageToUpdate.Identity)" /> | |
</Target> | |
<Target Name="_UpdatePackagesMultiTargeting" DependsOnTargets="_CollectPackagesToUpdate" Condition="'$(TargetFramework)' == '' and '$(TargetFrameworks)' != ''"> | |
<ItemGroup> | |
<_OuterPackages Include="@(_PackageToUpdate)" /> | |
<_TargetFrameworksForUpdate Include="$(TargetFrameworks)" /> | |
</ItemGroup> | |
<MSBuild Projects="$(MSBuildProjectFile)" Targets="_CollectPackagesToUpdate" Properties="TargetFramework=%(_TargetFrameworksForUpdate.Identity)"> | |
<Output TaskParameter="TargetOutputs" ItemName="_InnerPackages" /> | |
</MSBuild> | |
<ItemGroup> | |
<_InnerPackages Remove="@(_OuterPackages)" /> | |
</ItemGroup> | |
<RemoveDuplicates | |
Inputs="@(_InnerPackages);@(_OuterPackages)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_AllPackages"/> | |
</RemoveDuplicates> | |
<Exec Command="dotnet remove "$(MSBuildProjectFile)" package %(_AllPackages.Identity)" /> | |
<Exec Command="dotnet add "$(MSBuildProjectFile)" package %(_OuterPackages.Identity)" Condition="'%(_OuterPackages.Identity)' != ''" /> | |
<Exec Command="dotnet add "$(MSBuildProjectFile)" package %(_InnerPackages.Identity) -f %(_InnerPackages.TargetFramework)" | |
Condition="'%(_InnerPackages.Identity)' != ''" /> | |
</Target> | |
<Target Name="UpdatePackages" DependsOnTargets="_UpdatePackagesSingleTfm;_UpdatePackagesMultiTargeting" /> | |
</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment