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

Не удалось загрузить файл или сборку "System.Windows.Interactivity"

Я только что добавил сборку System.Windows.Interactivity. XamlParse бросает мне исключение во время выполнения:

Не удалось загрузить файл или сборку "System.Windows.Interactivity, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. система не может найти указанный файл.

В поиске Google найдены только результаты, связанные с призмой - которые я не использую.

Любая идея, почему это происходит?

4b9b3361

Ответ 1

Просто предположим, может быть, вы не ссылаетесь на библиотеки в проекте MAIN.

Это случилось со мной несколько раз.

Ответ 2

Ответ Tilak очень помог мне, но мне также потребовалось name по крайней мере один элемент из сборки "i" в коде XAML. Когда элемент назван, Visual Studio правильно подключает сборку.

Изменить

<i:InvokeCommandAction Command="{Binding MyCommand}"/>

в

<i:InvokeCommandAction Command="{Binding MyCommand}" x:Name="interactivityFix" />

Это нужно сделать только для одного элемента во всем файле XAML.

Ответ 3

Иногда, когда вы добавляете новую библиотеку, вводится своя версия 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 с фактической версией, на которую вы указываете:

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

Ответ 5

Вы можете сканировать каждый проект для версии System.Windows.Interactivity, например. 4.0.0.0 или 4.5.0.0. Кроме того, есть вероятность, что одна из сторонних dll, которые могут ссылаться, зависит от System.Windows.Interactivity. Поэтому убедитесь, что вы выровняете версию в своем проекте. Это должно решить вашу проблему.

Ответ 6

Вы можете проверить свойства проекта → Build → Output Path.

Перейти к выходному каталогу Path с помощью проводника Windows. Затем посмотрите, существует ли в этой папке файл System.Windows.Interactivity.dll. Это может произойти из-за того, что флаг CopyLocal имеет значение false или есть причина. Файл dll не создается в папке выходного пути.

Ответ 7

Это было этим утренним заданием. Проблема для нас заключалась в том, что установщик перенес расположение DLL. Иногда это не тонкое несоответствие версий: простое неправильное размещение вызовет те же признаки. Вы можете использовать Fuslogvw.exe, чтобы помочь диагностировать это. Как только вы (а) не забудете запустить инструмент с правами администратора и (б) сконфигурировать инструмент, чтобы показать вам ошибки привязки ("Настройки"), вы увидите записи в журнале, например:

LOG: DisplayName = System.Windows.Interactivity, PublicKeyToken=31bf3856ad364e35 (Partial) WRN: Partial binding information was supplied for an assembly: [ red herring, not a problem for us ]... LOG: GAC Lookup was unsuccessful [ another red herring: System.Windows.Interactivity.dll is not a core assembly and not registered in the GAC by default ] LOG: Attempting download of new URL file:///C: /Program Files (x86)/<path>/System.Windows.Interactivity.DLL.... LOG: All probing URLs attempted and failed. После того, как вы поместите библиотеку DLL на место, журнал будет выглядеть так: LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C: /Program Files (x86)/<path>/System.Windows.Interactivity.DLL. LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\<path>\System.Windows.Interactivity.dll LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C: /Program Files (x86)/<path>/System.Windows.Interactivity.DLL. LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\<path>\System.Windows.Interactivity.dll