NuGet:使用 .NET Framework 而不是 net5.0 恢复包

5 nuget .net-core

我对 .NET core 和 NuGet 发布都很陌生。

\n
    \n
  • 我构建了一个 .NET Core 5.0 类库。
  • \n
  • 我构建了一个 .NET Core 5.0 控制台应用程序来测试这个类库
  • \n
  • 如果测试控制台应用程序直接引用从此类库构建的 DLL,则一切正常。
  • \n
  • 如果我使用类库构建 NuGet 包并发布它,然后将该包下载到测试控制台应用程序,我会收到以下警告:
  • \n
\n

“已使用\n.NETFramework,Version=v4.6.1,\n.NETFramework,Version=v4.6.2,\n.NETFramework,Version=v4.7,\n.NETFramework 恢复包 SkyBridge.ClientAPI.NetCore 1.0.0.3 ,Version=v4.7.1,\n.NETFramework,Version=v4.7.2,\n.NETFramework,Version=v4.8\而不是项目目标框架net5.0。\n此包可能与您的项目不完全兼容”。

\n

这是 nuspec 文件:

\n
<?xml version="1.0" encoding="utf-8"?>\n<package >\n  <metadata>\n    <id>SkyBridge.ClientAPI.NetCore</id>\n    <version>1.0.0.3</version>\n    <title>SkyBridge.ClientAPI (.NET Core)</title>\n    <authors>Front Edge Software, Frank Lieu</authors>\n    <owners>Front Edge Software, Frank Lieu</owners>\n    <requireLicenseAcceptance>true</requireLicenseAcceptance>\n    <license type="file">SkyBridge_Client_API_Software_License_Agreement.txt</license>\n    <licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>\n    <description>A class library used to act as a SkyBridge client and communicate with another SkyBridge client.</description>\n    <summary>A class library used to act as a SkyBridge client and communicate with another SkyBridge client.</summary>\n    <releaseNotes>Initial release.</releaseNotes>\n    <copyright>Copyright \xc2\xa92021 Front Edge Software</copyright>\n    <tags>Front Edge SkyBridge Client API Remoting</tags>\n    \n    <dependencies>\n        <dependency id="Crc32.NET" version="1.2.0" />\n        <dependency id="BouncyCastle.NetCore" version="1.8.10" />\n        <dependency id="BouncyCastle.NetCoreSdk" version="1.9.3.1" />\n        <dependency id="System.Configuration.ConfigurationManager" version="6.0.0" />\n    </dependencies>\n  </metadata>\n  <files>\n    <file src="SkyBridge_Client_API_Software_License_Agreement.txt" target="" />\n  </files>\n</package>\n
Run Code Online (Sandbox Code Playgroud)\n

问题是什么?

\n

小智 6

以下 nuspec 解决了该问题 - 我指定了 .NET 依赖项:

\n
<?xml version="1.0" encoding="utf-8"?>\n<package >\n  <metadata>\n    <id>SkyBridgeAPI.NetCore</id>\n    <version>1.0.0.6</version>\n    <title>SkyBridgeAPI (.NET Core)</title>\n    <authors>Front Edge Software, Frank Lieu</authors>\n    <owners>Front Edge Software, Frank Lieu</owners>\n    <requireLicenseAcceptance>true</requireLicenseAcceptance>\n    <license type="file">SkyBridgeAPI_Software_License_Agreement.txt</license>\n    <licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>\n    <description>A class library used to act as a SkyBridge client and communicate with another SkyBridge client.</description>\n    <summary>A class library used to act as a SkyBridge client and communicate with another SkyBridge client.</summary>\n    <releaseNotes>Initial release.</releaseNotes>\n    <copyright>Copyright \xc2\xa92021 Front Edge Software</copyright>\n    <tags>Front Edge SkyBridge API Remoting</tags>\n        \n    \n    <dependencies>\n      <group targetFramework="net5.0">\n        <dependency id="Crc32.NET" version="1.2.0" />\n        <dependency id="BouncyCastle.NetCore" version="1.8.10" />\n        <dependency id="BouncyCastle.NetCoreSdk" version="1.9.3.1" />\n        <dependency id="System.Configuration.ConfigurationManager" version="6.0.0" />\n      </group>\n    </dependencies>\n    \n  </metadata>\n  <files>\n    <file src="SkyBridgeAPI_Software_License_Agreement.txt" target="" />\n    <file src="lib\\net5.0\\FrontEdge.SkyBridgeAPI.dll" target="lib\\net5.0" />\n  </files>\n</package>\n
Run Code Online (Sandbox Code Playgroud)\n