【问题标题】:Nuget package with NET Standard 1.X带有 NET Standard 1.X 的 Nuget 包
【发布时间】:2016-05-21 08:16:41
【问题描述】:

作为概念验证,我想创建一个由单个程序集组成的 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 为目标的项目时,它会显示此消息(输出窗口)

无法安装软件包“MyLib X.X.X.X”。您正在尝试安装 这个包到一个针对目标的项目中 '.NETFramework,Version=v4.6.1',但包中不包含任何 与之兼容的程序集引用或内容文件 框架。如需更多信息,请联系包作者。

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

【问题讨论】:

    标签: c# asp.net portable-class-library .net-core .net-core-rc2


    【解决方案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 的版本太高了。

    【讨论】:

    • “你可以期待旧版本的 .NET Framework 支持这样的包”你错过了否定吗?
    • 如何创建 RC2 项目?我在哪里写这个命令?我有 VS 2015 Update 2,没有任何插件。你能添加更多信息吗?谢谢!
    • @SuperJMN dot.net 您必须安装 .NET Core RC2 位,然后才能创建新项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多