Подтвердить что ты не робот

Как добавить System.Windows.Interactivity в проект?

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

4b9b3361

Ответ 1

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

Ответ 2

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

  • WPF 4.0, 4.5
  • Silverligt 4.0, 5.0
  • Windows Phone 7.1, 8.0
  • Магазин Windows 8, 8.1

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

PM> Install-Package Expression.Blend.Sdk

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

Ответ 4

С 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 с существующим проектом, чтобы добавить функциональность, использующую пространство имен Interactivity. В этом случае Blend автоматически добавит ссылку.

Ответ 5

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

Например, для пакета NuGet MVVM light может потребоваться v4.2 из System.Windows.Interactivity.dll, но для пакета NuGet Rx-XAML может потребоваться v4.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 с фактической версией, на которую вы указываете:

введите описание изображения здесь

Ответ 6

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

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

  1. Удалить ссылку на "Microsoft.Expression.Interactions" и "System.Windows.Interactivity"
  2. Установите пакет NuGet "Microsoft.Xaml.Behaviors.Wpf".
  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 # "Microsoft.Xaml.Interactivity" и "Microsoft.Xaml.Interactions" на "Microsoft.Xaml.Behaviors"

Ответ 7

Альтернативное решение - изменить текущую установку 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.

Ответ 9

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

Ответ 10

Если вы работаете с MVVM Light, вы должны использовать System.Windows.Interactivity Version 4.0 (NuGet.dll не работает), который вы можете найти в:

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

Просто добавьте этот .dll вручную в качестве ссылки, и все должно быть в порядке.