Closed
Description
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>
``