为什么无法安装NuGet包?

时间:2017-04-20 15:41:59

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

Windows 7 SP1 x64,Visual Studio 2017

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

enter image description here

稍后我尝试通过 NuGet Package Manager 安装Microsoft.VisualStudio.Web.CodeGeneration.ToolsMicrosoft.VisualStudio.Web.CodeGenerators.Mvc软件包,但是在安装过程中它们会抛出异常并回滚:

enter image description here

我该如何解决?

UPD

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

enter image description here

UPD2

感谢Leo-MSFT。他的建议帮助我安装了Microsoft.VisualStudio.Web.CodeGenerators.Mvc软件包但我仍然遇到了安装Microsoft.VisualStudio.Web.CodeGeneration.Tools软件包的问题:

enter image description here

1 个答案:

答案 0 :(得分: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 Package Manager 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