C# 导入简单自定义NuGet包时出错:包不支持任何目标框架

C# 导入简单自定义NuGet包时出错:包不支持任何目标框架,c#,.net,nuget,azure-devops,nuspec,C#,.net,Nuget,Azure Devops,Nuspec,我创建了一个针对4.6.1.NETFramework的.NETFramework类库。该项目包含一个.cs类,并且没有对任何库、DLL或NuGet包的外部引用。以下是nuspec: <?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <

我创建了一个针对4.6.1.NETFramework的.NETFramework类库。该项目包含一个.cs类,并且没有对任何库、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>

MyEventLogger.Core
1.0.0
日志事件日志

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


谢谢你的帮助!我找不到如何在任何地方修复此错误,也找不到针对多个.NET框架的好例子。

要想跨.NET framework和.NET core使用代码,您需要在用.NET标准编写的库中编写代码。您可能会找到类似的解决方案


谢谢

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

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


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

MyEventLogger.Core看起来像什么?这是什么类型的项目?更新了问题,提供了更多细节。这是一个.NET Framework类库。是否有任何东西阻止您将类库转换为NET标准库?正如@cal5barton所说,.NET标准2.0可能正是您想要的:我将我的库更改为.NET标准2.0库,并收到相同的错误。我还尝试将文件节点设置为:我认为这不是解决方案。我可以创建一个项目引用,但当我尝试将库作为NuGet包共享时,问题就出现了。我似乎不知道如何构造.nuspec文件,以便将DLL导入到我的另一个项目中。