Brakuje mojego projektu System.Windows.Interactivity
. Google mówi, że muszę zainstalować Expression Blend, ale na innym komputerze mam tę bibliotekę i nie mam zainstalowanego Expression Blend. Więc powinien być inny sposób na uzyskanie System.Windows.Interactivity
? Co powinienem zrobić? (w tej chwili nie mam innego komputera, więc nie mogę po prostu skopiować tej biblioteki :)
108
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
nie:xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
jak w każdym innym przykładzie, który widziałem.Chociaż ten problem jest dość stary, myślę, że to istotne wiadomości / najnowsza odpowiedź: Zachowania XAML oparte na otwartym kodzie źródłowym firmy Microsoft i opublikował post na blogu, jak zaktualizować do tej wersji: https://devblogs.microsoft.com/dotnet/open -sourcing-xaml-behawior-for-wpf /
Aby zaoszczędzić Ci kliknięcia, oto główne kroki migracji:
źródło
Istnieje nowy pakiet NuGet zawierający plik System.Windows.Interactivity.dll, który jest zgodny z:
Aby zainstalować Expression.Blend.Sdk, uruchom następujące polecenie w konsoli Menedżera pakietów
http://www.nuget.org/packages/Expression.Blend.Sdk/
źródło
System.Windows.Interactivity
. Aby rozwiązać ten problem, zobacz moją odpowiedź powyżej.Najłatwiejszym sposobem może być pobranie go z NuGet:
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
źródło
W przypadku programu Blend for Visual Studio , który jest zawarty w programie Visual Studio, począwszy od wersji 2013, można znaleźć bibliotekę DLL w następującym folderze:
Będziesz musiał jednak dodać odwołanie do
System.Windows.Interactivity.dll
siebie, chyba że używasz programu Blend for Visual Studio z istniejącym projektem, aby dodać funkcjonalność korzystającą z przestrzeni nazw interaktywności. W takim przypadku Blend automatycznie doda odniesienie.źródło
Czasami po dodaniu nowej biblioteki w programie wprowadzana jest kolidująca wersja
System.Windows.Interactivity.dll
.Na przykład pakiet NuGet
MVVM light
może wymagać wersjiSystem.Windows.Interactivity.dll
4.2, ale pakiet NuGetRx-XAML
może wymagać wersji 4.5System.Windows.Interactivity.dll
. Zapobiegnie to działaniu projektu, ponieważ bez względu na to, którą wersjęSystem.Windows.Interactivity.dll
dołączasz, jedna z bibliotek odmówi kompilacji.Aby to naprawić, dodaj przekierowanie powiązania zestawu, edytując plik,
app.config
aby wyglądał mniej więcej tak:Nie martw się o zmianę
PublicKeyToken
, jest to stałe we wszystkich wersjach, ponieważ zależy to od nazwy pliku .dll, a nie wersji.Upewnij się, że pokrywa się
newVersion
w twojejappConfig
do aktualnej wersji, że nie skończysz wskazując na:źródło
Alternatywnym rozwiązaniem jest zmodyfikowanie bieżącej instalacji programu Visual Studio w Instalatorze programu Visual Studio
Win+ R
%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe
dodanie
Blend for Visual Studio SDK for .NET
„Indywidualnego składnika” w obszarze „Zestawy SDK, biblioteki i struktury”:po dodaniu tego komponentu
System.Windows.Interactivity
powinien pojawić się w swoim zwykłym miejscuAdd Reference/Assemblies/Extensions
.Wygląda na to, że działałoby to tylko w przypadku VS2017 lub wcześniejszych. W przypadku późniejszych wersji zapoznaj się z innymi odpowiedziami.
źródło
Jest w MVVM Light, pobierz go ze strony pobierania MVVM Light .
źródło
Install-Package MvvmLightLibs -Version 5.3.0
Mam go za pośrednictwem pakietu NuGet Prism.WPF. (obejmuje Windows.System.Interactivity)
źródło
Jeśli pracujesz z MVVM Light, musisz użyć
System.Windows.Interactivity Version 4.0
(plik NuGet .dll nie zadziała), który można znaleźć w:PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll
Po prostu dodaj ten plik .dll ręcznie jako odniesienie i powinno być dobrze.
źródło