wake-up-neo.net

Datei oder Assembly 'System.Windows.Interactivity' konnte nicht geladen werden

Ich habe gerade System.Windows.Interactivity Assembly hinzugefügt. XamlParse wirft mir zur Laufzeit eine Ausnahme:

Datei oder Assembly 'System.Windows.Interactivity, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden.

Die Google-Suche hat nur Ergebnisse im Zusammenhang mit Prisma gefunden, die ich nicht verwende.

Irgendeine Idee, warum es passiert?

19
Harry

Vermutlich verweisen Sie nicht auf die Bibliotheken im MAIN-Projekt.

Es ist mir mehrmals passiert.

47
Tilak

Tilaks Antwort hat mir sehr geholfen, aber ich musste auch mindestens ein Element aus Assembly "i" im XAML-Code benennen . Wenn das Element benannt ist, schließt Visual Studio die Assembly ordnungsgemäß an.

Veränderung

<i:InvokeCommandAction Command="{Binding MyCommand}"/>

in

<i:InvokeCommandAction Command="{Binding MyCommand}" x:Name="interactivityFix" />

Dies muss nur für ein Element in der gesamten XAML-Datei durchgeführt werden.

9

Wenn Sie eine neue Bibliothek hinzufügen, wird in einigen Fällen eine Überschneidungsversion von System.Windows.Interactivity.dll eingeführt.

Dies verhindert, dass das Projekt funktioniert.

Um dies zu beheben, fügen Sie eine Umleitung der Baugruppenbindung hinzu, indem Sie Ihren app.config so bearbeiten, dass er ungefähr so ​​aussieht:

<?xml version="1.0"?>
<configuration>
<runtime>
  <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Windows.Interactivity"
                        publicKeyToken="31bf3856ad364e35"
                        culture="neutral"/>
      <bindingRedirect oldVersion="4.0.0.0"
                       newVersion="4.5.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
<appSettings>
  <add key="TestKey" value="true"/>
</appSettings>

Machen Sie sich keine Sorgen über das Ändern der PublicKeyToken, die in allen Versionen konstant ist, da sie vom Namen der DLL und nicht von der Version abhängt.

Stellen Sie sicher, dass Sie die newVersion in Ihrer appConfig mit der tatsächlichen Version abgleichen, auf die Sie am Ende zeigen:

 enter image description here

7
Contango

Sie finden diese DLL im Blend SDK.

Unten ist ein Link dazu:

http://www.Microsoft.com/en-us/download/details.aspx?id=10801

4
kmatyaszek

Sie können jedes Projekt nach der Version von System.Windows.Interactivity durchsuchen, z. 4.0.0.0 oder 4.5.0.0. Es besteht auch die Möglichkeit, dass eine der DLLs von Drittanbietern, auf die möglicherweise verwiesen wird, von System.Windows.Interactivity abhängt. Stellen Sie also sicher, dass Sie die Version über Ihr Projekt hinweg ausrichten. Dies muss Ihr Problem beheben.

0

Sie können die Projekteigenschaften überprüfen -> Erstellen -> Ausgabepfad.

Wechseln Sie mit Windows Explorer zum Ausgabepfad-Director. Überprüfen Sie dann, ob die Datei "System.Windows.Interactivity.dll" in diesem Ordner vorhanden ist. Dies kann daran liegen, dass das CopyLocal-Flag falsch ist oder ein Grund vorliegt. Die DLL-Datei wird nicht im Ausgabepfadordner generiert.

0
kyorilys

Das war die Aufgabe von heute Morgen. Das Problem für uns war nur, dass das Installationsprogramm den Speicherort der DLL verschoben hat. Manchmal handelt es sich nicht um eine subtile Versionsinkongruenz: Eine einfache Fehlplatzierung führt zu denselben Anzeichen. Sie können Fuslogvw.exe verwenden, um dies zu diagnostizieren. Nachdem Sie (a) daran gedacht haben, das Tool mit Administratorrechten zu starten und (b) das Tool so konfiguriert haben, dass es Ihnen Bindungsfehler anzeigt ("Einstellungen"), werden folgende Protokolleinträge angezeigt:

LOG: DisplayName = System.Windows.Interactivity, PublicKeyToken=31bf3856ad364e35 (Partial) WRN: Partial binding information was supplied for an Assembly: [ red herring, not a problem for us ] ... LOG: GAC Lookup was unsuccessful [ another red herring: System.Windows.Interactivity.dll is not a core Assembly and not registered in the GAC by default ] LOG: Attempting download of new URL file:///C:/Program Files (x86)/<path>/System.Windows.Interactivity.DLL. ... LOG: All probing URLs attempted and failed. Nachdem Sie das DLL dort abgelegt haben, wo es hingehört, sieht das Protokoll folgendermaßen aus: LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C:/Program Files (x86)/<path>/System.Windows.Interactivity.DLL. LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\<path>\System.Windows.Interactivity.dll

0
msr