Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Commit

Permalink
Merge pull request #18300 from ericstj/netfx.force.conflicts
Browse files Browse the repository at this point in the history
Add dll to netfx references to force bindingRedirects
  • Loading branch information
ericstj authored Apr 13, 2017
2 parents d155b2b + e9fdbbf commit a6f97f6
Show file tree
Hide file tree
Showing 8 changed files with 253 additions and 2 deletions.
4 changes: 2 additions & 2 deletions dir.targets
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@
<PackageFileRefPath Condition="'$(IsUAPRef)'=='true'">$(UAPPackageRefPath)</PackageFileRefPath>
<PackageFileRuntimePath>$(UAPAOTPackageRuntimePath)</PackageFileRuntimePath>
</BinPlaceConfiguration>
<BinPlaceConfiguration Condition="'$(IsNetFxNETStandard)' == 'true' AND '$(BuildingNETFxVertical)' == 'true'" Include="netfx-$(_bc_OSGroup)">
<BinPlaceConfiguration Condition="('$(IsNetFxNETStandard)' == 'true' OR '$(IsNetFxNETStandardRef)' == 'true') AND '$(BuildingNETFxVertical)' == 'true'" Include="netfx-$(_bc_OSGroup)">
<PackageFileRefPath Condition="'$(IsNetFxNETStandardRef)'=='true'">$(NetFxPackageRefPath)</PackageFileRefPath>
<PackageFileRuntimePath>$(NetFxPackageRuntimePath)</PackageFileRuntimePath>
<PackageFileRuntimePath Condition="'$(IsNetFxNETStandard)'=='true'">$(NetFxPackageRuntimePath)</PackageFileRuntimePath>
</BinPlaceConfiguration>

<!-- Setup the shared framework directory for testing -->
Expand Down
8 changes: 8 additions & 0 deletions external/netfx-conflicts/Configurations.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netfx;
</BuildConfigurations>
</PropertyGroup>
</Project>
85 changes: 85 additions & 0 deletions external/netfx-conflicts/netfx-conflicts.depproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" TreatAsLocalProperty="TargetFramework">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<!-- netstandard 1.0 had the lowest version, we'll fallback to 1.1, 1.2, then 1.3 to pick up the lowest version of contracts
that only supported a later netstandard version -->
<TargetFramework>netstandard1.0</TargetFramework>
<NuGetTargetMoniker>.NETStandard,Version=v1.0</NuGetTargetMoniker>
<PackageTargetFallback>netstandard1.1;netstandard1.2;netstandard1.3</PackageTargetFallback>
<NuGetDeploySourceItem>Reference</NuGetDeploySourceItem>
<NugetRuntimeIdentifier>None</NugetRuntimeIdentifier>
</PropertyGroup>

<ItemGroup>
<_contract Include="Microsoft.CSharp"/>
<_contract Include="System.Collections.Concurrent"/>
<_contract Include="System.Collections"/>
<_contract Include="System.ComponentModel.Annotations"/>
<_contract Include="System.ComponentModel"/>
<_contract Include="System.ComponentModel.EventBasedAsync"/>
<_contract Include="System.Diagnostics.Contracts"/>
<_contract Include="System.Diagnostics.Debug"/>
<_contract Include="System.Diagnostics.Tools"/>
<_contract Include="System.Diagnostics.Tracing"/>
<_contract Include="System.Dynamic.Runtime"/>
<_contract Include="System.Globalization"/>
<_contract Include="System.IO"/>
<_contract Include="System.IO.Compression"/>
<_contract Include="System.Linq"/>
<_contract Include="System.Linq.Expressions"/>
<_contract Include="System.Linq.Parallel"/>
<_contract Include="System.Linq.Queryable"/>
<_contract Include="System.Net.Http"/>
<_contract Include="System.Net.NetworkInformation"/>
<_contract Include="System.Net.Primitives"/>
<_contract Include="System.Net.Requests"/>
<_contract Include="System.Net.WebHeaderCollection"/>
<_contract Include="System.ObjectModel"/>
<_contract Include="System.Reflection"/>
<_contract Include="System.Reflection.Context"/>
<_contract Include="System.Reflection.Emit"/>
<_contract Include="System.Reflection.Emit.ILGeneration"/>
<_contract Include="System.Reflection.Emit.Lightweight"/>
<_contract Include="System.Reflection.Extensions"/>
<_contract Include="System.Reflection.Primitives"/>
<_contract Include="System.Resources.ResourceManager"/>
<_contract Include="System.Runtime"/>
<_contract Include="System.Runtime.Extensions"/>
<_contract Include="System.Runtime.Handles"/>
<_contract Include="System.Runtime.InteropServices"/>
<_contract Include="System.Runtime.InteropServices.WindowsRuntime"/>
<_contract Include="System.Runtime.Numerics"/>
<_contract Include="System.Runtime.Serialization.Json"/>
<_contract Include="System.Runtime.Serialization.Primitives"/>
<_contract Include="System.Runtime.Serialization.Xml"/>
<_contract Include="System.Security.Principal"/>
<_contract Include="System.ServiceModel.Duplex"/>
<_contract Include="System.ServiceModel.Http"/>
<_contract Include="System.ServiceModel.NetTcp"/>
<_contract Include="System.ServiceModel.Primitives"/>
<_contract Include="System.ServiceModel.Security"/>
<_contract Include="System.Text.Encoding"/>
<_contract Include="System.Text.Encoding.Extensions"/>
<_contract Include="System.Text.RegularExpressions"/>
<_contract Include="System.Threading"/>
<_contract Include="System.Threading.Tasks"/>
<_contract Include="System.Threading.Tasks.Parallel"/>
<_contract Include="System.Threading.Timer"/>
<_contract Include="System.Xml.ReaderWriter"/>
<_contract Include="System.Xml.XDocument"/>
<_contract Include="System.Xml.XmlSerializer"/>
<PackageReference Include="@(_contract)">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.VisualBasic">
<Version>10.1.0</Version>
</PackageReference>
</ItemGroup>

<Target Name="DumpVersions" DependsOnTargets="ResolveReferences">
<Message Text="%(ReferencePath.FusionName)" />
</Target>

<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@
</File>
</ItemGroup>

<ItemGroup>
<!-- this file is meant to have dangling references, it's purpose is to force conflicts with
any newer version of the original desktop contracts. -->
<ExcludeFromClosure Include="netfx.force.conflicts" />
</ItemGroup>

<Import Project="$(SourceDir)\shims\netfxreference.props" />

<!-- runs as initial target -->
Expand Down
12 changes: 12 additions & 0 deletions src/netfx.force.conflict/dir.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\dir.props" />
<PropertyGroup>
<!-- this assembly is not versioned, it only contains type forwards and will never be referenced by another assembly -->
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyKey>Open</AssemblyKey>
<!-- this assembly only appears in ref -->
<IsNetFxNETStandard>false</IsNetFxNETStandard>
<IsNetFxNETStandardRef>true</IsNetFxNETStandardRef>
</PropertyGroup>
</Project>
8 changes: 8 additions & 0 deletions src/netfx.force.conflict/ref/Configurations.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netfx;
</BuildConfigurations>
</PropertyGroup>
</Project>
117 changes: 117 additions & 0 deletions src/netfx.force.conflict/ref/TypeForwards.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Runtime.CompilerServices;
// Microsoft.CSharp
[assembly: TypeForwardedTo(typeof(Microsoft.CSharp.RuntimeBinder.Binder))]
// Microsoft.VisualBasic
[assembly: TypeForwardedTo(typeof(Microsoft.VisualBasic.Strings))]
// System.Collections
[assembly: TypeForwardedTo(typeof(System.Collections.Generic.List<>))]
// System.Collections.Concurrent
[assembly: TypeForwardedTo(typeof(System.Collections.Concurrent.ConcurrentDictionary<,>))]
// System.ComponentModel
[assembly: TypeForwardedTo(typeof(System.ComponentModel.CancelEventArgs))]
// System.ComponentModel.Annotations
[assembly: TypeForwardedTo(typeof(System.ComponentModel.DataAnnotations.ValidationResult))]
// System.ComponentModel.EventBasedAsync
[assembly: TypeForwardedTo(typeof(System.ComponentModel.AsyncCompletedEventArgs))]
// System.Diagnostics.Contracts
[assembly: TypeForwardedTo(typeof(System.Diagnostics.Contracts.Contract))]
// System.Diagnostics.Debug
[assembly: TypeForwardedTo(typeof(System.Diagnostics.Debug))]
// System.Diagnostics.Tools
[assembly: TypeForwardedTo(typeof(System.CodeDom.Compiler.GeneratedCodeAttribute))]
// System.Diagnostics.Tracing
[assembly: TypeForwardedTo(typeof(System.Diagnostics.Tracing.EventSource))]
// System.Dynamic.Runtime
[assembly: TypeForwardedTo(typeof(System.Dynamic.DynamicObject))]
// System.Globalization
[assembly: TypeForwardedTo(typeof(System.Globalization.CultureInfo))]
// System.IO
[assembly: TypeForwardedTo(typeof(System.IO.Stream))]
// System.IO.Compression
[assembly: TypeForwardedTo(typeof(System.IO.Compression.GZipStream))]
// System.Linq
[assembly: TypeForwardedTo(typeof(System.Linq.Enumerable))]
// System.Linq.Expressions
[assembly: TypeForwardedTo(typeof(System.Linq.Expressions.Expression))]
// System.Linq.Parallel
[assembly: TypeForwardedTo(typeof(System.Linq.ParallelEnumerable))]
// System.Linq.Queryable
[assembly: TypeForwardedTo(typeof(System.Linq.Queryable))]
// System.Net.Http
[assembly: TypeForwardedTo(typeof(System.Net.Http.HttpClient))]
// System.Net.Http.Rtc
// not supported on desktop
// System.Net.NetworkInformation
[assembly: TypeForwardedTo(typeof(System.Net.NetworkInformation.NetworkInterface))]
// System.Net.Primitives
[assembly: TypeForwardedTo(typeof(System.Net.HttpStatusCode))]
// System.Net.Requests
[assembly: TypeForwardedTo(typeof(System.Net.HttpWebRequest))]
// System.ObjectModel
[assembly: TypeForwardedTo(typeof(System.ComponentModel.INotifyPropertyChanged))]
// System.Reflection
[assembly: TypeForwardedTo(typeof(System.Reflection.MethodInfo))]
// System.Reflection.Context
[assembly: TypeForwardedTo(typeof(System.Reflection.Context.CustomReflectionContext))]
// System.Reflection.Extensions
[assembly: TypeForwardedTo(typeof(System.Reflection.InterfaceMapping))]
// System.Reflection.Primitives
[assembly: TypeForwardedTo(typeof(System.Reflection.TypeAttributes))]
// System.Resources.ResourceManager
[assembly: TypeForwardedTo(typeof(System.Resources.ResourceManager))]
// System.Runtime
[assembly: TypeForwardedTo(typeof(string))]
// System.Runtime.Extensions
[assembly: TypeForwardedTo(typeof(System.Environment))]
// System.Runtime.InteropServices
[assembly: TypeForwardedTo(typeof(System.Runtime.InteropServices.DllImportAttribute))]
// System.Runtime.InteropServices.WindowsRuntime
[assembly: TypeForwardedTo(typeof(System.Runtime.InteropServices.WindowsRuntime.ReadOnlyArrayAttribute))]
// System.Runtime.Numerics
[assembly: TypeForwardedTo(typeof(System.Numerics.BigInteger))]
// System.Runtime.Serialization.Json
[assembly: TypeForwardedTo(typeof(System.Runtime.Serialization.Json.DataContractJsonSerializer))]
// System.Runtime.Serialization.Primitives
[assembly: TypeForwardedTo(typeof(System.Runtime.Serialization.DataContractAttribute))]
// System.Runtime.Serialization.Xml
[assembly: TypeForwardedTo(typeof(System.Runtime.Serialization.DataContractSerializer))]
// System.Runtime.WindowsRuntime
// not supported on desktop
// System.Runtime.WindowsRuntime.UI.Xaml
// not supported on desktop
// System.Security.Principal
[assembly: TypeForwardedTo(typeof(System.Security.Principal.IPrincipal))]
// System.ServiceModel.Duplex
[assembly: TypeForwardedTo(typeof(System.ServiceModel.DuplexClientBase<>))]
// System.ServiceModel.Http
[assembly: TypeForwardedTo(typeof(System.ServiceModel.BasicHttpBinding))]
// System.ServiceModel.NetTcp
[assembly: TypeForwardedTo(typeof(System.ServiceModel.NetTcpBinding))]
// System.ServiceModel.Primitives
[assembly: TypeForwardedTo(typeof(System.ServiceModel.ClientBase<>))]
// System.ServiceModel.Security
[assembly: TypeForwardedTo(typeof(System.ServiceModel.Channels.LocalClientSecuritySettings))]
// System.Text.Encoding
[assembly: TypeForwardedTo(typeof(System.Text.Encoding))]
// System.Text.Encoding.Extensions
[assembly: TypeForwardedTo(typeof(System.Text.UTF8Encoding))]
// System.Text.RegularExpressions
[assembly: TypeForwardedTo(typeof(System.Text.RegularExpressions.Regex))]
// System.Threading
[assembly: TypeForwardedTo(typeof(System.Threading.Mutex))]
// System.Threading.Tasks
[assembly: TypeForwardedTo(typeof(System.Threading.Tasks.Task))]
// System.Threading.Tasks.Parallel
[assembly: TypeForwardedTo(typeof(System.Threading.Tasks.Parallel))]
// System.Threading.Timer
[assembly: TypeForwardedTo(typeof(System.Threading.Timer))]
// System.Xml.ReaderWriter
[assembly: TypeForwardedTo(typeof(System.Xml.XmlReader))]
// System.Xml.XDocument
[assembly: TypeForwardedTo(typeof(System.Xml.Linq.XDocument))]
// System.Xml.XmlSerializer
[assembly: TypeForwardedTo(typeof(System.Xml.Serialization.XmlSerializer))]
15 changes: 15 additions & 0 deletions src/netfx.force.conflict/ref/netfx.force.conflicts.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<ProjectGuid>{96AA2060-C846-4E56-9509-E8CB9C114C8F}</ProjectGuid>
<AssemblyName>netfx.force.conflicts</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netfx-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netfx-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="TypeForwards.cs" />
<ProjectReference Include="..\..\..\external\netfx-conflicts\netfx-conflicts.depproj" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>

0 comments on commit a6f97f6

Please sign in to comment.