【问题标题】:project dotnet build error after adding target framework添加目标框架后项目dotnet构建错误
【发布时间】:2022-08-16 14:00:57
【问题描述】:

打开此文档以记录错误和解决方案,因为错误消息非常不透明,我不记得以前因为这个原因看到过它。

采用针对 netcoreapp3.1 的 nuget 包并将其分叉以针对其他框架。构建后收到此错误:

/usr/share/dotnet/sdk/6.0.302/NuGet.targets(130,5): error : Sequence contains no matching element [/home/user/work/src/nugetpkg/nuggetpkg.sln]

当集合没有项目但尝试使用时,此错误通常是 linq 异常。很惊讶它没有被编译器翻译成更具体的上下文错误(为什么我问这个问题)。

    标签: .net build


    【解决方案1】:

    相当无信息的构建错误,错误甚至不表示构建正在做什么!

    (也许添加更高的详细程度会改善它,但仍然是相当低的错误)。

    但是,由于我在这里更改的只是目标框架,所以我想知道我是否有错字。

    然后回忆起微软定义多种定位方式的奇怪情况:

    • 始终有效
    • 和另一个仅在针对单个框架时有效。

    这是修复,更改:

     <TargetFramework>netcoreapp3.1;netstandard2.0</TargetFramework>
    

    至:

    
    <TargetFrameworks>netcoreapp3.1;netstandard2.0</TargetFrameworks>
    

    因为前者只支持针对一个框架。

    希望这对某人有所帮助-或者直到微软使这两种形式的行为相同。

    【讨论】: