Laden...

Binding Redirect von System.Runtime funktioniert nicht

Erstellt von jogibear9988 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.616 Views
J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 6 Jahren
Binding Redirect von System.Runtime funktioniert nicht

Ich habe eine Net 4.6.2 WPF Anwendung, welche verschiedene DLL's verwendet.

Nun kann er System.Runtime nicht laden.

So sieht meine Umleitung aus:

  <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
      </dependentAssembly>

Folgendes steht im Fusion log.


Der Assemblymanager wurde geladen aus:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Als EXE-Datei ausgeführt.  D:\csharp\git\mcc5\MCC.V1.0\bin\Debug\MCC.Configurator.exe
--- Ein detailliertes Fehlerprotokoll folgt. 

\=== Zustandsinformationen vor Bindung ===
LOG: DisplayName = System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///D:/csharp/git/mcc5/MCC.V1.0/bin/Debug/
LOG: Ursprünglicher PrivatePath = NULL
Aufruf von Assembly : RoslynPad.Roslyn, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null.
\===
LOG: Diese Bindung startet im default-Load-Kontext.
LOG: Die Anwendungskonfigurationsdatei wird verwendet: D:\csharp\git\mcc5\MCC.V1.0\bin\Debug\MCC.Configurator.exe.Config
LOG: Die Hostkonfigurationsdatei wird verwendet: 
LOG: Die Computerkonfigurationsdatei von C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config wird verwendet.
LOG: In der Anwendungskonfigurationsdatei wurde eine Umleitung gefunden. 4.0.20.0 wird nach 4.1.1.0 umgeleitet.
LOG: Verweis nach der Richtlinie: System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Download von neuem URL file:///D:/csharp/git/mcc5/MCC.V1.0/bin/Debug/System.Runtime.DLL.
WRN: Der Vergleich des Assemblynamens führte zum Konflikt: Buildnummer.
ERR: Das Setup der Assembly konnte nicht abgeschlossen werden (hr = 0x80131040). Die Suche wurde beendet.

Er scheint die Umleitung ja auch zu finden...

cSharp Projekte : https://github.com/jogibear9988

J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 6 Jahren

Hab jetzt mal mit ILSpy in die DLL geschaut:


[assembly: AssemblyVersion("4.1.2.0")]
[assembly: CLSCompliant(true)]
[assembly: Debuggable]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyCopyright("© Microsoft Corporation.  All rights reserved.")]
[assembly: AssemblyDefaultAlias("System.Runtime")]
[assembly: AssemblyDescription("System.Runtime")]
[assembly: AssemblyFileVersion("4.6.25507.01")]
[assembly: AssemblyInformationalVersion("4.6.25507.01 built by: dlab-DDVSOWINAGE023. Commit Hash: 12c9d44ad9eb995a5e31abfc8e32cce9d647f7af")]
[assembly: AssemblyMetadata("", "")]
[assembly: AssemblyProduct("Microsoft® .NET Framework")]
[assembly: AssemblyTitle("System.Runtime")]

Warum 4.1.2.0??

Ich blick da echt nicht mehr durch. Die main exe hat das nuget
<package id="System.Runtime" version="4.3.0" targetFramework="net462" />
da ist ja aber keine DLL enthalten.
Wenn ich in VS auf die Verweise schaue, wird auf C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.6.2\Facades\System.Runtime.dll verwiesen. Die hat Version 4.0.20.0

Wie soll ich meinen Binding Redirect nun machen? woher kommen die Versionen? warum macht Nuget den Redirect nicht richtig???

Blickt das noch jemand?

cSharp Projekte : https://github.com/jogibear9988

J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 6 Jahren

Wenn ich manuell die Umleitung auf 4.1.2.0 anpasse, gehts. Aber warum? Woher kommt diese DLL? Natürlich hab ich zig andere DLLs eingebunden, welche auch wiederum Net Standart DLLs verwenden...

Aber wenn meine main exe auf ein bestimmtes nuget verweist (System.Runtime 4.3), müsste dann nicht ein redirect für diese version angelegt werden, und im ausgabeverzeichnis auch diese dll sein??

cSharp Projekte : https://github.com/jogibear9988

J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 6 Jahren

Und wenn ich ein neues Projekt anleg eund das Nuget System.Runtime 4.3.0 referenziere gibt es trotzdem nur einen binding redirect auf 4.1.1.0

Ich kapier das nicht

cSharp Projekte : https://github.com/jogibear9988