.NET打包针对多个框架

7

我有一个 .NET Core 项目,目标框架为 2 个:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netcoreapp1.0;net45</TargetFramework>
    </PropertyGroup>
</Project>

使用dotnet build -c Release -f net45|netcoreapp1.0命令,我可以为所需的框架构建我的类库。 但是我找不到如何使用dotnet-pack命令做同样的事情。我遇到了以下错误:

C:\Program Files\dotnet\sdk\1.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(84,5): error : Cannot infer TargetFrameworkIdentifier and/or TargetFrameworkVersion from TargetFramework='netcoreapp1.0'. They must be specified explicitly. [C:\Users\olduh\sly\sly\sly\sly.csproj]

在构建NuGet包时,是否有一种多目标框架的方法?

谢谢您的回答,

Olivier


结果发现错误消息是误导性的,我开了一个 PR 来修复这个问题,并且它已经被截断了。https://github.com/dotnet/sdk/pull/1173 - Martin Ullrich
1个回答

10

对于多目标,使用复数的TargetFrameworks属性来提供一个框架列表。TargetFramework(单数)只接受一个框架。如果你修复该属性名上缺失的sdotnet pack -c Release就可以按预期工作,而不需要指定任何框架参数。

可能在添加额外框架时您没有更新该属性。通过指定-f选项,您已经覆盖了该属性使其正常工作,但我猜dotnet build将会出现相同的错误。


谢谢Martin,它完成了任务。 - Olivier Duhart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接