web-dev-qa-db-fra.com

Comment ajouter System.Windows.Interactivity au projet?

Mon projet manque System.Windows.Interactivity. Google indique que je dois installer Expression Blend, mais cette librairie est installée sur un autre ordinateur et Expression Blend n'est pas installé sur mon ordinateur. Donc, il devrait y avoir un autre moyen d’obtenir System.Windows.Interactivity? Que devrais-je faire? (Pour l'instant, je n'ai pas d'autre ordinateur, donc je ne peux pas simplement copier cette bibliothèque :)

61
javapowered

C'est dans le SDK Blend, il y a un paquet NuGet pour celui-ci ou vous pouvez l'obtenir ici (obsolète).

57
H.B.

Un nouveau package NuGet contient le fichier System.Windows.Interactivity.dll compatible avec:

  • WPF 4.0, 4.5
  • Silverligt 4.0, 5.0
  • Windows Phone 7.1, 8.0
  • Windows Store 8, 8.1

Pour installer Expression.Blend.Sdk, exécutez la commande suivante dans la console de Package Manager.

PM> Install-Package Expression.Blend.Sdk

http://www.nuget.org/packages/Expression.Blend.Sdk/

55
Thomas

Le plus simple serait peut-être de l'obtenir de NuGet:

http://www.nuget.org/packages/System.Windows.Interactivity.WPF/

22
seabass2020

Avec Blend for Visual Studio, inclus dans Visual Studio à partir de la version 2013, vous pouvez trouver le DLL dans le dossier suivant:

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries

Vous devrez ajouter la référence au System.Windows.Interactivity.dll _ vous-même, à moins que vous n'utilisiez Blend for Visual Studio avec un projet existant pour ajouter une fonctionnalité exploitant l'espace de noms Interactivity. Dans ce cas, Blend ajoutera la référence automatiquement.

18
poke

Parfois, lorsque vous ajoutez une nouvelle bibliothèque, introduit une version conflictuelle de System.Windows.Interactivity.dll.

Par exemple, le package NuGet MVVM light pourrait nécessiter la v4.2 de System.Windows.Interactivity.dll, mais le paquet NuGet Rx-XAML pourrait nécessiter la v4.5 de System.Windows.Interactivity.dll. Cela empêchera le projet de fonctionner car peu importe la version de System.Windows.Interactivity.dll vous incluez, l’une des bibliothèques refusera de compiler.

Pour résoudre ce problème, ajoutez une redirection de liaison d’assemblage en modifiant votre app.config pour ressembler à ceci:

<?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>

Ne vous inquiétez pas de la modification de PublicKeyToken, constante dans toutes les versions, car elle dépend du nom du fichier .dll et non de la version.

Assurez-vous de faire correspondre le newVersion de votre appConfig à la version réelle sur laquelle vous pointez:

enter image description here

17
Contango

La solution alternative consiste à modifier votre installation actuelle de Visual Studio dans le programme d'installation de Visual Studio.

Win+R %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe

ajoutant le Blend for Visual Studio SDK for .NET 'Composant individuel' sous 'SDK, bibliothèques et frameworks':

enter image description here après avoir ajouté ce composant System.Windows.Interactivity devrait apparaître à son emplacement habituel Add Reference/Assemblies/Extensions.

13
wondra

Bien que ce problème soit relativement ancien, je pense que ce sont des informations pertinentes/la réponse la plus récente: Comportements XAML Microsoft à source ouverte et publication d’un article de blog sur la mise à jour vers cette version: https://devblogs.Microsoft.com/dotnet/open-sourcing-xaml-comportements-pour-wpf /

Pour vous sauver un clic, voici les principales étapes de la migration:

  1. Supprimer la référence à "Microsoft.Expression.Interactions" et à "System.Windows.Interactivity"
  2. Installez le package NuGet "Microsoft.Xaml.Behaviors.Wpf".
  3. Fichiers XAML - remplacez les espaces de noms xmlns http://schemas.Microsoft.com/expression/2010/interactivity et http://schemas.Microsoft.com/expression/2010/interactions avec http://schemas.Microsoft.com/xaml/behaviors
  4. Fichiers C # - remplace les utilisations des fichiers c # "Microsoft.Xaml.Interactivity" et "Microsoft.Xaml.Interactions" par "Microsoft.Xaml.Behaviors"
9
Jan

C'est dans MVVM Light, procurez-vous le = Page de téléchargement de MVVM Light .

2
Contango

Je l'ai eu via le NuGet-Package Prism.WPF. (il inclut Windows.System.Interactivity)

1
Halloween_Udo

Si vous travaillez avec MVVM Light, vous devez utiliser le System.Windows.Interactivity Version 4.0 (le NuGet .dll ne fonctionnera pas) que vous pouvez trouver sous:

PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll

Ajoutez simplement ce fichier .dll manuellement comme référence et tout devrait bien se passer.

0
nairda-newb