提交 79be3b18 编写于 作者: T Tomas Matousek

Workaround for System.ValueTuple loading issue

上级 aa806658
......@@ -183,7 +183,8 @@
<SystemTextEncodingCodePagesVersion>4.3.0</SystemTextEncodingCodePagesVersion>
<SystemThreadingTasksDataflowVersion>4.5.24</SystemThreadingTasksDataflowVersion>
<SystemValueTupleVersion>4.3.0</SystemValueTupleVersion>
<!-- We need SVT assembly version at least 4.0.3.0 on net47 to make F5 work - see https://github.com/dotnet/roslyn/issues/29705 -->
<SystemValueTupleVersion>4.5.0</SystemValueTupleVersion>
<SystemThreadingTasksExtensionsVersion>4.3.0</SystemThreadingTasksExtensionsVersion>
<SQLitePCLRawbundle_greenVersion>1.1.2</SQLitePCLRawbundle_greenVersion>
<UIAComWrapperVersion>1.1.0.14</UIAComWrapperVersion>
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.VisualStudio.Shell;
using Roslyn.VisualStudio.Setup;
[assembly: ProvideDependencyBindingRedirection("Microsoft.DiaSymReader.dll")]
......
B[$RootKey$\RuntimeConfiguration\dependentAssembly\bindingRedirection\{579ACE4E-FC58-4993-9F23-EE7079F03FE9}]
......@@ -59,4 +59,24 @@
<ItemGroup>
<ProjectReference Include="..\..\Setup\DevDivPackages\Debugger\DevDivPackagesDebugger_DoNotUse.csproj" />
</ItemGroup>
<!--
Workaround to make Roslyn work on Dev15. Deploys System.ValueTuple 4.0.3.0 and binding redirects to override System.ValueTuple 4.0.1.0 in PrivateAssemblies.
Roslyn binaries are compiled against net472 and netstandard2.0. They reference ValueTuple types from mscorlib.dll and netstandard.dll, respectively.
netstandard.dll forwards to System.ValueTuple.dll 4.0.0.0, which in turn forwards to an implementation in mscorlib.dll.
System.ValueTuple.dll 4.0.1.0, which ships in PrivateAssemblies, also has an implementation of ValueTuple types (it does not forward to mscorlib.dll).
We need to prevent this assembly from loading since that would result in two different ValueTuple types loaded by different Roslyn components.
The binding redirects are specified manually since ProvideDependencyBindingRedirection attribute doesn't generate the right version for some reason.
Using System.ValueTuple.dll from Framework directory does not work since we'd need a downgrading redirect 0.0.0.0-4.0.1.0 -> 4.0.0.0, which VS doesn't apply
since it already has a redirect 0.0.0.0-4.0.1.0 -> 4.0.1.0.
TODO: Remove once we move to Dev16 (https://github.com/dotnet/roslyn/issues/29705)
-->
<ItemGroup>
<PackageReference Include="System.ValueTuple" Version="$(SystemValueTupleVersion)" />
<NuGetPackageToIncludeInVsix Include="System.ValueTuple" />
<Content Include="Roslyn.VisualStudio.Setup.Dependencies.ValueTuple.pkgdef" IncludeInVSIX="true" />
</ItemGroup>
</Project>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册