Importing simple custom NuGet package with error: Package does not support any target frameworks

Importing simple custom NuGet package with error: Package does not support any target frameworks

我创建了一个针对 4.6.1 .NET Framework 的 .NET Framework class 库。该项目包含一个 .cs class,并且没有对任何库、DLL 或 NuGet 包的外部引用。这是 nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <!-- Required elements-->
        <id>MyEventLogger.Core</id>
        <version>1.0.0</version>
        <description>Logs event log</description>
        <authors>Me</authors>
    </metadata>
    <files>
      <file src="MyEventLogger.Core\**\bin\Debug\*.dll" target="lib\net" />
      <file src="MyEventLogger.Core\**\bin\Debug\*.dll" target="lib\netstandard" />
    </files>
</package>

我在从 ASP.NET 核心应用程序 运行 .NET Framework 4.7.1 导入它时遇到问题。

我得到的错误是该包不支持任何框架:

我正在使用 Azure Devops 构建管道来启动包并推送到本地源。我应该如何正确引用它,以便较新版本的 .NET Framework 上的应用程序仍然可以使用旧版本上的这个库?

感谢您的帮助!我找不到如何在任何地方修复此错误或针对多个 .NET Frameworks 的好示例。

为了能够跨 .net 框架和 .net 核心使用代码,您需要在以 .net 标准编写的库中编写代码。您可能会找到类似的解决方案 here

谢谢

当我能够使用以下文件节点时,我就开始工作了:

<files>
   <file src="**\MyEventLogger.Core.dll" target="lib\net461\MyEventLogger.Core.dll" />
</files>

帮助我解决这个问题的是在我的机器上安装 NuGet 以及安装 NuGetPackageExplorer。您可以使用 NuGetPackageExplorer 创建包,然后导出 .nuspec 文件。我将该 .nuspec 文件复制到我的存储库中,然后将我的 Azure DevOps 构建管道指向 .nuspec 文件。当我将包导入另一个项目时,这个错误就消失了。