如何定位.NET Standard 2.0?

时间:2018-02-05 19:43:38

标签: .net asp.net-mvc visual-studio-code .net-standard

我正在尝试创建一个面向.NET Standard 2.0的新.NET MVC应用程序。 当我执行dotnet new mvc -au None时,我最终得到了一个定位aspnetcore2.0的应用。由于我希望项目定位netstandard2.0,因此我必须手动制作.csproj文件:

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.1" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
  </ItemGroup>
</Project>

一切都建立得很好,但当我做dotnet run时,事情会向南发展:

  

可运行项目应针对可运行的TFM(例如,   netcoreapp2.0)并使OutputType为'Exe'。

相关信息:

dotnet --version
2.1.4

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

您应定位netcoreapp2.0

说明

<。> .Net Standard是.Net基类库的一个实现,它定义了一个可以编程的API标准列表。因此,您的项目可以像.Net X.X那样以.Net标准为目标。

当您选择DotNetCore 2.0时,您实际上选择了.net标准的 实现 ,它使用基于.net标准2.0的类。这些类通常被编译成一个不可执行的类库(dll)。或者,您可以基于标准在应用程序项目中构建类的实现。 DotNetCore应用程序是 可执行 的控制台应用程序。

请参阅以下部分:Relationship to .NET Standard