【发布时间】:2020-09-07 10:02:58
【问题描述】:
我有一个同时针对net472 和netstandard2.0 的项目。当我在 VisualStudio 中构建项目时,两个框架都在输出目录中生成,并按预期生成了一个 .nupkg 文件。
当尝试在 CLI 中使用 dotnet build 构建相同的项目时,它只会构建 netstandard2.0 项目而不是 net472。另外,.nupkg 没有生成(大概是因为所有目标都不可用,但我不确定)。
我还有其他项目的设置方式与此项目相同,但仅针对 netstandard2.0,并且这些项目在使用 dotnet build 时会生成 .nupkg。
如何让 dotnet 使用两个框架构建项目并生成 .nupkg 文件?据我了解,dotnet build 应该构建所有目标框架,除非提供了-f 开关。
这是项目文件的略微修改版本:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net472;netstandard2.0</TargetFrameworks>
</PropertyGroup>
<!-- .NET 4.7.2 only packages -->
<ItemGroup Condition="'$(TargetFramework)' == 'net472'">
<PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" />
</ItemGroup>
<!-- All framework packages -->
<ItemGroup>
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>
<!-- Project references -->
<ItemGroup>
<!-- Various reference in here -->
</ItemGroup>
</Project>
附加信息:
dotnet --version: 3.1.300
msbuild -版本: 16.5.0.12403
【问题讨论】:
标签: .net .net-core msbuild target-framework