带有 NET 标准的 Nuget 包 1.X

Nuget package with NET Standard 1.X

作为概念验证,我想创建一个由单个程序集组成的 Nuget 包。该程序集是使用全新的 .NET Standard 1.X 配置文件 编译的。我的想法是让它不仅可用于 .NET Core,而且可用于 .NET 4.6.1(完整框架),甚至更旧的版本,但我不知道如何实现。

目前,我创建了一个 nuspec 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>

    <id>MyPackage</id>
    <description>MyPackage</description>

    <version>X.X.X.X</version>
    <authors>JMN</authors>
    <owners>JMN</owners>
    <licenseUrl>http://opensource.org/licenses/Apache-2.0</licenseUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>

  </metadata>

  <files>
    <file src="bin\Release\MyLib.dll" target="lib\netstandard1.X\MyLib.dll" />
  </files>

</package>

问题是,当将包添加到以 .NET Framework 4.6.1 为目标的项目时,它会显示此消息(输出 window)

Could not install package 'MyLib X.X.X.X'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6.1', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

我应该怎么做才能使我的 nuget 包可用于两个框架(至少 .NET Standard 1.X 和 .NET Framework 4.6.1)。

您根本不需要自己的 nuspec。

只需创建一个 RC 2 project.json,然后使用 dotnet pack 生成 NuGet 包。

http://dotnet.github.io/docs/core-concepts/libraries/libraries-with-cli.html

您不能期望旧版本的 .NET Framework 支持此类包,因为 .NET Standard 1.5 的版本太高了。