.NET 4.6.1 support? #1270

Closed
vasily-kirichenko opened this Issue Dec 1, 2015 · 15 comments

Comments

Projects
None yet
3 participants
@vasily-kirichenko
Contributor

vasily-kirichenko commented Dec 1, 2015

Now project files contain something like this:

<Choose>
    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.6')">
      <ItemGroup>
        <Reference Include="FSharp.Core">
          <HintPath>..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll</HintPath>
          <Private>True</Private>
          <Paket>True</Paket>
        </Reference>
      </ItemGroup>
    </When>
  </Choose>
  <Choose>

If I set target framework version to 4.6.1 (VS 2015 Update 1), then all the references are disappear and nothing compiles.

@forki forki closed this in 0f15da2 Dec 1, 2015

@vasily-kirichenko

This comment has been minimized.

Show comment
Hide comment
@vasily-kirichenko

vasily-kirichenko Dec 1, 2015

Contributor

2.30.0.0:

        </Reference>
       </ItemGroup>
     </When>
-    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')">
+    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.6')">
       <ItemGroup>
         <Reference Include="AlphaFS">
           <HintPath>..\..\packages\AlphaFS\lib\net451\AlphaFS.dll</HintPath>
Contributor

vasily-kirichenko commented Dec 1, 2015

2.30.0.0:

        </Reference>
       </ItemGroup>
     </When>
-    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')">
+    <When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.6')">
       <ItemGroup>
         <Reference Include="AlphaFS">
           <HintPath>..\..\packages\AlphaFS\lib\net451\AlphaFS.dll</HintPath>
@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member

maybe there is still an issue with ordering, but integration tests show that 4.6.1 is emitted in many places. let me check again.

Member

forki commented Dec 1, 2015

maybe there is still an issue with ordering, but integration tests show that 4.6.1 is emitted in many places. let me check again.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member

are you sure you used latest? c349139 shows the sample with AlphaFS and it creates the 4.6.1 tag.

What else can be wrong?

Member

forki commented Dec 1, 2015

are you sure you used latest? c349139 shows the sample with AlphaFS and it creates the 4.6.1 tag.

What else can be wrong?

@vasily-kirichenko

This comment has been minimized.

Show comment
Hide comment
@vasily-kirichenko

vasily-kirichenko Dec 1, 2015

Contributor

I don't know. I added Or $(TargetFrameworkVersion) == 'v4.6.1' by hand. Everything compiles. Now I paket install and it removes Or $(TargetFrameworkVersion) == 'v4.6.1' from all the projects. And, of course, paket install --redirects does not add redirects for FSharp.Core any -> 4.4.0.0

Contributor

vasily-kirichenko commented Dec 1, 2015

I don't know. I added Or $(TargetFrameworkVersion) == 'v4.6.1' by hand. Everything compiles. Now I paket install and it removes Or $(TargetFrameworkVersion) == 'v4.6.1' from all the projects. And, of course, paket install --redirects does not add redirects for FSharp.Core any -> 4.4.0.0

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member

@vasily-kirichenko does work for you on the integration test? do you have minimal repro?

@mrinaldi @isaacabraham any ideas about the redirects?

Member

forki commented Dec 1, 2015

@vasily-kirichenko does work for you on the integration test? do you have minimal repro?

@mrinaldi @isaacabraham any ideas about the redirects?

@forki forki reopened this Dec 1, 2015

@vasily-kirichenko

This comment has been minimized.

Show comment
Hide comment
@vasily-kirichenko

vasily-kirichenko Dec 1, 2015

Contributor

I revert <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> => <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>, then paket install and everything ok now, including redirects:

<dependentAssembly>
    <Paket>True</Paket>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="4.4.0.0" />
</dependentAssembly>
Contributor

vasily-kirichenko commented Dec 1, 2015

I revert <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> => <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>, then paket install and everything ok now, including redirects:

<dependentAssembly>
    <Paket>True</Paket>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="4.4.0.0" />
</dependentAssembly>
@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member

mhm. that's interesting.
I will try this in the test case.

Member

forki commented Dec 1, 2015

mhm. that's interesting.
I will try this in the test case.

forki added a commit that referenced this issue Dec 1, 2015

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member

I'm not sure if the TargetFrameworkVersion change was related, yet.
But for me the binding redirects don't get updated as well. @mrinaldi if you find some time then could you please take a look at #1273? thx

Member

forki commented Dec 1, 2015

I'm not sure if the TargetFrameworkVersion change was related, yet.
But for me the binding redirects don't get updated as well. @mrinaldi if you find some time then could you please take a look at #1273? thx

@mrinaldi

This comment has been minimized.

Show comment
Hide comment
@mrinaldi

mrinaldi Dec 1, 2015

Contributor

#1273 doesn't add the redirects because it's not needed. (the test still fails if you change the project to target v4.6)

If you add to the project the Yaaf.FSharp.Scripting package, however, it generates the redirects for FSharp.Core.

@vasily-kirichenko do you have a small repro for the redirects?

Contributor

mrinaldi commented Dec 1, 2015

#1273 doesn't add the redirects because it's not needed. (the test still fails if you change the project to target v4.6)

If you add to the project the Yaaf.FSharp.Scripting package, however, it generates the redirects for FSharp.Core.

@vasily-kirichenko do you have a small repro for the redirects?

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 1, 2015

Member
Member

forki commented Dec 1, 2015

@mrinaldi

This comment has been minimized.

Show comment
Hide comment
@mrinaldi

mrinaldi Dec 2, 2015

Contributor

Explicitly stating a dependency should have redirects is any different than stating a global redirects?

I guess not. In that case, it'd behave like the global one and generate only the redirects for needed assemblies. Am I wrong here?

Contributor

mrinaldi commented Dec 2, 2015

Explicitly stating a dependency should have redirects is any different than stating a global redirects?

I guess not. In that case, it'd behave like the global one and generate only the redirects for needed assemblies. Am I wrong here?

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 2, 2015

Member

No you are right behavior should be the same. I just wonder how I can add
redirects now. Especially with fsharp.core ww often have conflicts with GAC
versions.
On Dec 2, 2015 01:13, "Marcio Rinaldi" notifications@github.com wrote:

Explicitly stating a dependency should have redirects is any different
than stating a global redirects?

I guess not. In that case, it'd behave like the global one and generate
only the redirects for needed assemblies. Am I wrong here?


Reply to this email directly or view it on GitHub
#1270 (comment).

Member

forki commented Dec 2, 2015

No you are right behavior should be the same. I just wonder how I can add
redirects now. Especially with fsharp.core ww often have conflicts with GAC
versions.
On Dec 2, 2015 01:13, "Marcio Rinaldi" notifications@github.com wrote:

Explicitly stating a dependency should have redirects is any different
than stating a global redirects?

I guess not. In that case, it'd behave like the global one and generate
only the redirects for needed assemblies. Am I wrong here?


Reply to this email directly or view it on GitHub
#1270 (comment).

@mrinaldi

This comment has been minimized.

Show comment
Hide comment
@mrinaldi

mrinaldi Dec 2, 2015

Contributor

I guess you can't since #1187.

What do you suggest?
Should we take the GAC assemblies into account, should we have a redirects: force? Maybe both?

Contributor

mrinaldi commented Dec 2, 2015

I guess you can't since #1187.

What do you suggest?
Should we take the GAC assemblies into account, should we have a redirects: force? Maybe both?

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Dec 2, 2015

Member

The issue with GAC is that you can't know the GAC of the deployment
machine. So yes a force option would be awesome.
On Dec 2, 2015 18:12, "Marcio Rinaldi" notifications@github.com wrote:

I guess you can't since #1187
#1187.

What do you suggest?
Should we take the GAC assemblies into account, should we have a redirects:
force? Maybe both?


Reply to this email directly or view it on GitHub
#1270 (comment).

Member

forki commented Dec 2, 2015

The issue with GAC is that you can't know the GAC of the deployment
machine. So yes a force option would be awesome.
On Dec 2, 2015 18:12, "Marcio Rinaldi" notifications@github.com wrote:

I guess you can't since #1187
#1187.

What do you suggest?
Should we take the GAC assemblies into account, should we have a redirects:
force? Maybe both?


Reply to this email directly or view it on GitHub
#1270 (comment).

@vasily-kirichenko

This comment has been minimized.

Show comment
Hide comment
@vasily-kirichenko

vasily-kirichenko Dec 2, 2015

Contributor

👍

Relying on the machine's GAC where you run paket install is fragile.

Contributor

vasily-kirichenko commented Dec 2, 2015

👍

Relying on the machine's GAC where you run paket install is fragile.

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