Mein Projekt fehlt System.Windows.Interactivity
. Google sagt, dass ich Expression Blend installieren muss, aber auf meinem anderen Computer habe ich diese Bibliothek und ich habe Expression Blend nicht installiert. Es sollte also einen anderen Weg geben, um zu erhalten System.Windows.Interactivity
? Was soll ich machen? (Im Moment habe ich keinen anderen Computer, daher kann ich diese Bibliothek nicht einfach kopieren :)
106
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
nicht:xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
wie in jedem anderen Beispiel, das ich gesehen habe.Obwohl dieses Problem ziemlich alt ist, denke ich, dass dies relevante Neuigkeiten / die neueste Antwort sind: Microsoft Open-Source-XAML-Verhalten und veröffentlichte einen Blog-Beitrag zum Aktualisieren auf diese Version: https://devblogs.microsoft.com/dotnet/open -sourcing-xaml-verhaltens-für-wpf /
Um Ihnen einen Klick zu ersparen, sind dies die wichtigsten Schritte für die Migration:
quelle
Es gibt ein neues NuGet-Paket, das die System.Windows.Interactivity.dll enthält, die kompatibel ist mit:
Führen Sie zum Installieren von Expression.Blend.Sdk den folgenden Befehl in der Package Manager-Konsole aus
http://www.nuget.org/packages/Expression.Blend.Sdk/
quelle
System.Windows.Interactivity
. Zur Lösung siehe meine Antwort oben.Der einfachste Weg könnte sein, es von NuGet zu bekommen:
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
quelle
Mit Blend for Visual Studio , das ab Version 2013 in Visual Studio enthalten ist, finden Sie die DLL im folgenden Ordner:
Sie müssen jedoch den Verweis auf sich
System.Windows.Interactivity.dll
selbst hinzufügen , es sei denn, Sie verwenden Blend for Visual Studio mit einem vorhandenen Projekt, um Funktionen hinzuzufügen, die den Interaktivitäts-Namespace verwenden. In diesem Fall fügt Blend die Referenz automatisch hinzu.quelle
Wenn Sie eine neue Bibliothek hinzufügen, wird manchmal eine kollidierende Version von eingeführt
System.Windows.Interactivity.dll
.Für das NuGet-Paket ist
MVVM light
möglicherweise Version 4.2 erforderlichSystem.Windows.Interactivity.dll
, für das NuGet-Paket istRx-XAML
möglicherweise Version 4.5 erforderlichSystem.Windows.Interactivity.dll
. Dadurch wird verhindert, dass das Projekt funktioniert, daSystem.Windows.Interactivity.dll
eine der Bibliotheken unabhängig von Ihrer Version die Kompilierung verweigert.Fügen Sie
app.config
zum Korrigieren eine Assembly Binding Redirect hinzu, indem Sie Ihre so bearbeiten, dass sie ungefähr so aussieht:Machen Sie sich keine Sorgen über das Ändern der
PublicKeyToken
, das ist über alle Versionen konstant, da es vom Namen der DLL abhängt, nicht von der Version.Stellen Sie sicher, dass Sie die
newVersion
in IhrerappConfig
mit der tatsächlichen Version übereinstimmen, auf die Sie am Ende zeigen:quelle
Alternative Lösung zu modifizieren Ihre aktuelle Visual Studio - Installation in Visual Studio Installer
Win+ R
%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe
Hinzufügen der
Blend for Visual Studio SDK for .NET
‚Einzelkomponente‘ unter ‚SDKs, Bibliotheken und Frameworks‘:Nach dem Hinzufügen sollte diese Komponente
System.Windows.Interactivity
an ihrer regulären Position erscheinenAdd Reference/Assemblies/Extensions
.Es scheint, dass dies nur für VS2017 oder früher funktionieren würde. Für spätere Versionen beziehen Sie sich bitte auf andere Antworten.
quelle
Es ist in MVVM Light, erhalten Sie es von der MVVM Light Download-Seite .
quelle
Install-Package MvvmLightLibs -Version 5.3.0
Ich habe es über das Prism.WPF NuGet-Paket erhalten. (es enthält Windows.System.Interactivity)
quelle
Wenn Sie mit MVVM Light arbeiten, müssen Sie die
System.Windows.Interactivity Version 4.0
(die NuGet .dll funktioniert nicht) verwenden, die Sie unter finden können:PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll
Fügen Sie diese DLL einfach manuell als Referenz hinzu und es sollte in Ordnung sein.
quelle