创建一个新的 .net core web api 项目

查看依赖关系

见下图。

为什么 Microsoft.AspNetCore.App 需要两次?
它在默认的 csproj 中:

 <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
  </ItemGroup>

并且也在SDK下。

我不明白这是什么原因,非常困惑。如果我从 csproj 中删除它并进行清理并运行,应用程序将运行

asp.net-core - 为什么 Microsoft AspNetCore App 在 Dependencies 中显示两次-LMLPHP

最佳答案

这是因为 Microsoft.AspNetCore.App 既是您的应用程序(NuGet 节点)的依赖项,也是您使用的 SDK 的依赖项。您可以在项目文件的顶部找到 SDK:

<Project Sdk="Microsoft.NET.Sdk.Web">

Web SDK 在其 MSBuild 目标文件之一中引用 Microsoft.AspNetCore.App 包。您可以在 SDK 安装文件夹中找到 SDK 目标:C:\Program Files\dotnet\sdk\<version>\Sdks\Microsoft.NET.Sdk.Web\Sdk
从 .NET Core 3.0 开始,这些引用将发生变化,您可以使用 <FrameworkReference> 元素而不是 <PackageReference> 元素来引用框架以避免歧义。有关更多信息,请参阅以下 GitHub 问题:
  • https://github.com/aspnet/Announcements/issues/325
  • https://github.com/aspnet/AspNetCore/issues/3612
  • 关于asp.net-core - 为什么 Microsoft AspNetCore App 在 Dependencies 中显示两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53832373/

    10-16 20:08