Skip to content

Lock file has incorrect .NET framework lock #462

Description

@isaacabraham

Create a paket.dependencies file as follows: -

source https://nuget.org/api/v2
nuget WindowsAzure.Storage

The lock file generated looks like this: -

NUGET
  remote: https://nuget.org/api/v2
  specs:
    Microsoft.Data.Edm (5.6.3)
    Microsoft.Data.OData (5.6.3)
      Microsoft.Data.Edm (5.6.3)
      System.Spatial (5.6.3)
    Microsoft.Data.Services.Client (5.6.3) - net40
      Microsoft.Data.OData (5.6.3)
    Microsoft.WindowsAzure.ConfigurationManager (2.0.3) - net40
    Newtonsoft.Json (6.0.6) - net40
    System.Spatial (5.6.3)
    WindowsAzure.Storage (4.3.0)
      Microsoft.Data.OData (>= 5.6.2)
      Microsoft.Data.OData (>= 5.6.2) - net40
      Microsoft.Data.OData (>= 5.6.2) - winv4.5
      Microsoft.Data.OData (>= 5.6.2) - wpv8.0
      Microsoft.Data.Services.Client (>= 5.6.2) - net40
      Microsoft.WindowsAzure.ConfigurationManager (>= 1.8.0.0) - net40
      Newtonsoft.Json (>= 5.0.8) - net40
      Newtonsoft.Json (>= 5.0.8) - wpv8.0

Notice the net40 restrictions on a number of dependencies. On a brand new FSharp Class Library (using net45), these are not available for consumption within code. For example, for Newtonsoft.Json, the only node in the .fsproj file is: -

  <Choose>
    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
      <ItemGroup>
        <Reference Include="Newtonsoft.Json">
          <HintPath>..\packages\Newtonsoft.Json\lib\net40\Newtonsoft.Json.dll</HintPath>
          <Private>True</Private>
          <Paket>True</Paket>
        </Reference>
      </ItemGroup>
    </When>
  </Choose>

If you remove the net40 from the lock file and then do a paket install --hard, everything works fine. You get multiple When elements in the project file, one for each version made available by the dependency.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions