如何以 .NET Standard 2.0 为目标?
How to target .NET Standard 2.0?
我正在尝试创建一个面向 .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
事情时,事情就变糟了:
A runnable project should target a runnable TFM (for instance,
netcoreapp2.0) and have OutputType 'Exe'.
相关信息:
dotnet --version
2.1.4
我在这里错过了什么?
您应该定位 netcoreapp2.0
。
说明
.Net Standard 是 .Net Base Class 库的一个实现,它定义了一个标准的 API 列表,您可以根据这些列表进行编程。因此,您的项目可以像面向 .Net X.X 一样面向 .Net Standard。
当您选择 DotNetCore 2.0 时,您实际上是在选择消耗 classes 的 .net 标准的 实现 基于 .net 标准 2.0。这些 classes 通常被编译成不可执行的 class 库 (dll)。或者,您可以在基于标准的应用程序项目中构建 classes 的实现。 DotNetCore 应用程序是 可执行 的控制台应用程序。
我正在尝试创建一个面向 .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
事情时,事情就变糟了:
A runnable project should target a runnable TFM (for instance, netcoreapp2.0) and have OutputType 'Exe'.
相关信息:
dotnet --version
2.1.4
我在这里错过了什么?
您应该定位 netcoreapp2.0
。
说明
.Net Standard 是 .Net Base Class 库的一个实现,它定义了一个标准的 API 列表,您可以根据这些列表进行编程。因此,您的项目可以像面向 .Net X.X 一样面向 .Net Standard。
当您选择 DotNetCore 2.0 时,您实际上是在选择消耗 classes 的 .net 标准的 实现 基于 .net 标准 2.0。这些 classes 通常被编译成不可执行的 class 库 (dll)。或者,您可以在基于标准的应用程序项目中构建 classes 的实现。 DotNetCore 应用程序是 可执行 的控制台应用程序。