Как добавить System.Windows.Interactivity в проект? - PullRequest
58 голосов
/ 02 декабря 2011

Мой проект отсутствует System.Windows.Interactivity. Google говорит, что мне нужно установить Expression Blend, но на другом компьютере у меня есть эта библиотека, и у меня не установлена ​​Expression Blend. Так должен быть другой способ получить System.Windows.Interactivity? Что я должен делать? (сейчас у меня нет другого компьютера, поэтому я не могу просто скопировать эту библиотеку:)

Ответы [ 9 ]

56 голосов
/ 02 декабря 2011

Он находится в Blend SDK, для него есть пакет NuGet или вы можете получить его здесь (устарело).

55 голосов
/ 29 апреля 2014

Существует новый пакет NuGet, который содержит System.Windows.Interactivity.dll, совместимый с:

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

Чтобы установить Expression.Blend.Sdk, выполните следующую команду в консоли диспетчера пакетов

PM> Install-Package Expression.Blend.Sdk

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

22 голосов
/ 23 октября 2013

Самый простой способ - получить его от NuGet:

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

18 голосов
/ 26 марта 2016

С Blend для Visual Studio , который включен в Visual Studio начиная с версии 2013, вы можете найти DLL в следующей папке:

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

Вам нужно будет добавитьссылка на System.Windows.Interactivity.dll сама, хотя, если вы не используете Blend для Visual Studio с существующим проектом, чтобы добавить функциональность, которая использует пространство имен Interacctivity.В этом случае Blend автоматически добавит ссылку.

17 голосов
/ 24 июля 2015

Иногда, когда вы добавляете новую библиотеку, в ней вводится конфликтующая версия System.Windows.Interactivity.dll.

Например, для пакета NuGet MVVM light может потребоваться v4.2 из System.Windows.Interactivity.dll, но NuGetДля пакета Rx-XAML может потребоваться версия 4.5 System.Windows.Interactivity.dll.Это предотвратит работу проекта, потому что независимо от того, какую версию System.Windows.Interactivity.dll вы включите, одна из библиотек откажется компилировать.

Чтобы исправить, добавьте перенаправление привязки сборки, отредактировав ваш app.configчтобы выглядеть примерно так:

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

Не беспокойтесь об изменении PublicKeyToken, которое постоянно во всех версиях, так как оно зависит от имени .dll, а неверсия.

Убедитесь, что newVersion в вашем appConfig соответствует фактической версии, на которую вы в итоге указали:

enter image description here

12 голосов
/ 31 августа 2018

Альтернативное решение - изменить текущую установку Visual Studio в установщике Visual Studio

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

добавив Blend for Visual Studio SDK for .NET 'Отдельный компонент' в 'SDK, библиотеки и инфраструктуры':

enter image description here после добавления этого компонента System.Windows.Interactivity должен появиться в его обычном местоположении Add Reference/Assemblies/Extensions.

5 голосов
/ 21 мая 2019

Хотя эта проблема довольно старая, я думаю, что это релевантные новости / самый последний ответ: Microsoft с открытым исходным кодом XAML Behaviors и разместил в блоге сообщение о том, как обновить эту версию: https://devblogs.microsoft.com/dotnet/open-sourcing-xaml-behaviors-for-wpf/

Длясохранить щелчок, это основные шаги для миграции:

  1. Удалить ссылку на «Microsoft.Expression.Interactions» и «System.Windows.Interactivity»
  2. Установить «Microsoft.Xaml.Behaviors.Wpf ”NuGet.
  3. XAML-файлы - заменить пространства имен xmlns http://schemas.microsoft.com/expression/2010/interactivity и http://schemas.microsoft.com/expression/2010/interactions на http://schemas.microsoft.com/xaml/behaviors
  4. C # -файлы - заменить использование в файлах c # «Microsoft.Xaml.Интерактивность »и« Microsoft.Xaml.Interactions »с« Microsoft.Xaml.Behaviors »
2 голосов
/ 24 июля 2015

Это в MVVM Light, получите его со страницы MVVM Light Download .

1 голос
/ 04 августа 2017

Я получил его через NuGet-пакет Prism.WPF. (включает Windows.System.Interactivity)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...