【问题标题】:Why the NuGet packages can't be installed?为什么无法安装 NuGet 包?
【发布时间】:2017-09-17 08:39:02
【问题描述】:

Windows 7 SP1 x64、Visual Studio 2017

我在 Empty 模板的基础上新建了一个 ASP.NET Core MVC 项目:

后来我尝试通过 NuGet 包管理器安装Microsoft.VisualStudio.Web.CodeGeneration.ToolsMicrosoft.VisualStudio.Web.CodeGenerators.Mvc 包,但它们在安装过程中抛出异常并被回滚:

我该如何解决?

UPD

如果尝试通过 NuGet 控制台执行相同操作,我会看到更详细的异常信息:

UPD2

感谢Leo-MSFT。他的建议帮助我安装了Microsoft.VisualStudio.Web.CodeGenerators.Mvc 包,但我仍然无法安装Microsoft.VisualStudio.Web.CodeGeneration.Tools 包:

【问题讨论】:

  • “输出”窗口中的内容是什么?应该有一个“显示输出:”选择器,其中之一是“包管理器”。或者,如果您使用“包管理器控制台”和install-pacakge Microsoft.VisualStudio.Web.CodeGeneration.Tools,您可能会在那里看到输出
  • @MarcGravell,我添加了 UPD 部分。

标签: asp.net asp.net-mvc visual-studio nuget nuget-package


【解决方案1】:

为什么无法安装 NuGet 包?

这是因为包 Microsoft.Composition 1.0.27 与 netcoreapp1.0/1.1 (.NETCoreApp,Version=v1.0)不兼容。包 Microsoft.Composition 1.0.27 支持:portable-net45+win8+wp8+wpa81。您将在“输出”窗口中收到此消息。

要解决此问题,您可以改用 Visual Studio 2015,如果您仍想使用 Visual Studio 2017,可以将 PackageTargetFallback 添加到 .csproj 文件中,如下所示:

<PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PackageTargetFallback>$(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8</PackageTargetFallback>
  </PropertyGroup>

然后通过 NuGet 添加这两个包。

更新:

对于 UPD2 问题: 您可以通过 NuGet 包管理器 UI 而不是 NuGet 包控制台安装包 Microsoft.VisualStudio.Web.CodeGeneration.Tools。因为 nuget 团队致力于支持通过 UI 安装工具的想法是默认情况下将随新项目一起安装工具,或者您可以手动将以下几行添加到 csproj 文件中以安装该工具:

<ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
  </ItemGroup>

更多详情可以参考issue 4190

【讨论】:

  • 谢谢。它帮助我安装了Microsoft.VisualStudio.Web.CodeGenerators.Mvc 包,但我仍然有安装Microsoft.VisualStudio.Web.CodeGeneration.Tools 包的问题。请看我的UPD2
  • @AndreyBushman,我已经为您的 UPD2 更新了答案,请检查它是否适合您。
猜你喜欢
  • 2019-04-15
  • 2014-02-15
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
相关资源
最近更新 更多