gpt4 book ai didi

nuget - 如何根据 NuGet 中的目标框架指定条件依赖项?

转载 作者:行者123 更新时间:2023-12-03 23:55:18 25 4
gpt4 key购买 nike

我正在构建一个引用 Microsoft CommonServiceLocator 程序集的 NuGet 包。

Microsoft CommonServiceLocator 有两个版本:

  • CommonServiceLocator - 面向完整的 .NET 框架并由 Microsoft EnterpriseLibrary 组件引用。
  • Portable.CommonServiceLocator - 包含完整版的 CommonServiceLocator 和 the recently released Portable Class Library version .

  • 我的项目是一个可移植类库,但是,因为它有时与企业库一起使用,所以我需要“有条件地”引用可移植版本,因此没有冲突。
  • 如果目标框架是完整的 .NET 4.0/4.5,请使用原始 CommonServiceLocator 包,这样人们也可以使用企业库位(也引用 CommonServiceLocator 包)。
  • 如果目标框架是可移植的(或其他任何框架),请使用 Portable.CommonServiceLocator 包。

  • I see the new "group" feature in the NuGet docs showing how to specify dependencies in your .nuspec file我认为这会做我想做的事,但我不确定如何测试它。

    这是我认为我需要做的事情,我希望有人可以验证我的方法或为我指明正确的方向:

    <dependencies>
    <group>
    <!-- Always include regardless of target framework -->
    <dependency id="Autofac" />
    </group>
    <group targetFramework="net40">
    <!-- Also include the full CSL if it's full framework -->
    <dependency id="CommonServiceLocator" />
    </group>
    <group targetFramework="portable-win+sl50+wp8">
    <!-- Otherwise include the Portable CSL -->
    <dependency id="Portable.CommonServiceLocator" />
    </group>
    </dependencies>

    具体来说...
  • 是我的 targetFramework语法对吗? 我找不到任何例子,所以我不知道 +分隔机制是正确的,或者是否应该以逗号分隔。
  • 默认组会起作用吗? 具有未指定目标框架的那个组 - 将始终包括在内还是我需要在每个组中复制/粘贴它?
  • 最佳答案

    是的,这非常正确。可在此处找到有关可移植框架名称的详细信息 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Framework_Names

    我发现的另一件事,因为 win+sl50+wp8 默认包含 net45,您可能希望包含它,以便安装此依赖项组。

    关于nuget - 如何根据 NuGet 中的目标框架指定条件依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688536/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com