build: repair net40 Tray build and test-host binding redirects
Environment drift since ~7/26 broke a pristine checkout: (1) the SDK's AutoGenerateBindingRedirects made RAR drop RioJoy.Core.dll for the net40 Tray exe (Bcl facade 1.5.11.0 vs 2.6.8.0 mismatch) - disabled for net40 with a hand-authored app.net40.config carrying the 2.6.8.0 redirects, which XP's CLR 4.0 does not unify on its own; (2) 25 serial-link tests failed on System.Runtime.CompilerServices.Unsafe load - Channels 8.0's net462 binary references Unsafe 6.0.0.0 without declaring the dependency; pinned the package and added the redirect app.config the earlier good builds had auto-generated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,16 @@
|
||||
|
||||
<PropertyGroup Condition="'$(TargetFramework)' == 'net40'">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<!-- The SDK defaults AutoGenerateBindingRedirects=true for .NET Framework
|
||||
exes, which makes RAR walk the dependency closure of the NuGet-resolved
|
||||
Microsoft.Bcl.Async assemblies; those were compiled against Microsoft.Bcl
|
||||
facades v1.5.11.0 while the graph ships v2.6.8.0, and RAR classifies the
|
||||
missing 1.5.11.0 facades as unresolvable framework assemblies and drops
|
||||
the references (MSB3268 → CS0234). Turning generation off skips that
|
||||
walk; the redirects the XP runtime still needs are hand-authored in
|
||||
app.net40.config instead. -->
|
||||
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
|
||||
<AppConfig>app.net40.config</AppConfig>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- XP (net40) flavor only, selected via <AppConfig> in the csproj. The
|
||||
Microsoft.Bcl.Async assemblies were compiled against the Microsoft.Bcl
|
||||
facades v1.5.11.0, but the package graph ships v2.6.8.0; XP's CLR 4.0 has
|
||||
no framework unification for these (4.5+ does), so without the redirects
|
||||
the first TaskEx call throws FileLoadException. Build-time redirect
|
||||
generation is off (see AutoGenerateBindingRedirects in the csproj), so the
|
||||
redirects live here statically. The SDK adds the <startup> section. -->
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user