Skip to content

Consider pay-for-play for tools packages #5273

Closed
@natemcmaster

Description

@natemcmaster

Installing Microsoft.EntityFrameworkCore.Tools into a desktop .NET project brings with it packages that are only there for .NET Core CLI commands. Although this can be harmless, this means csproj/packages.config projects end up with about 20 packages and references they don't actually need. This also makes uninstalling tools.

IMO we should consider pay-for-play. A package such as Ms.EFCore.Tools.Powershell could eliminate bringing in these unnecessary packages.

Result of blank csproj + Install-Package Microsoft.EntityFrameworkCore.Tools -pre

<packages>
  <package id="Ix-Async" version="1.2.5" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Hosting.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Hosting.Server.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Http.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Http.Features" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.DotNet.Cli.Utils" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.DotNet.InternalAbstractions" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.DotNet.ProjectModel" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Relational" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Relational.Design" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools.Cli" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools.Core" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Caching.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Caching.Memory" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.CommandLineUtils" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Configuration.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyModel" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.Extensions.FileProviders.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Logging" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Logging.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Options" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.PlatformAbstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Primitives" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net452" />
  <package id="NuGet.Common" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Configuration" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.DependencyResolver.Core" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Frameworks" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.LibraryModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging.Core" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging.Core.Types" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.ProjectModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Protocol.Core.Types" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Protocol.Core.v3" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Repositories" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.RuntimeModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Versioning" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="Remotion.Linq" version="2.0.2" targetFramework="net452" />
  <package id="System.Collections" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Collections.Concurrent" version="4.0.12-rc2-24027" targetFramework="net452" />
  <package id="System.Collections.Immutable" version="1.2.0-rc2-24027" targetFramework="net452" />
  <package id="System.ComponentModel" version="4.0.1-rc2-24027" targetFramework="net452" />
  <package id="System.Diagnostics.Debug" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Diagnostics.DiagnosticSource" version="4.0.0-rc2-24027" targetFramework="net452" />
  <package id="System.Globalization" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.IO" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Linq" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Linq.Expressions" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Reflection" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Reflection.Metadata" version="1.3.0-rc2-24027" targetFramework="net452" />
  <package id="System.Resources.ResourceManager" version="4.0.1-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime.Extensions" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime.InteropServices" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Text.Encodings.Web" version="4.0.0-rc2-24027" targetFramework="net452" />
  <package id="System.Threading" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Threading.Tasks" version="4.0.11-rc2-24027" targetFramework="net452" />
</packages>
``

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions