Мой проект отсутствует System.Windows.Interactivity
. Google говорит, что мне нужно установить Expression Blend, но на моем другом компьютере у меня есть эта библиотека, и у меня нет Expression Blend. Итак, должен быть другой способ получить System.Windows.Interactivity
? Что мне делать? (прямо сейчас у меня нет другого компьютера, поэтому я не могу просто скопировать эту библиотеку:)
Как добавить System.Windows.Interactivity в проект?
Ответ 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
Ответ 3
Самый простой способ - получить его от NuGet:
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
Ответ 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/
Чтобы сохранить ваш клик, это основные шаги для миграции:
- Удалить ссылку на "Microsoft.Expression.Interactions" и "System.Windows.Interactivity"
- Установите пакет NuGet "Microsoft.Xaml.Behaviors.Wpf".
- Файлы XAML - замените пространства имен xmlns http://schemas.microsoft.com/expression/2010/interactivity и http://schemas.microsoft.com/expression/2010/interactions на http://schemas.microsoft.com/xaml/behaviors
- Файлы С# - замените значения в файлах 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, библиотеки и инфраструктуры":
после добавления этого компонента System.Windows.Interactivity
должна появиться в своем обычном расположении Add Reference/Assemblies/Extensions
.
Ответ 8
Это в MVVM Light, получите его из страницы загрузки MVVM Light.
Ответ 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 вручную в качестве ссылки, и все должно быть в порядке.