2016-09-15 3 views
1

Я публикации приложения WPF с помощью Visual Studio 2015 После того, как опубликовать, когда я нажимаю файл .application, он выдает эту ошибку:ClickOnce требует System.Windows.Interactivity версии 4.5.0.0

Unable to install or run the application. The application requires that assembly System.Windows.Interactivity Version 4.5.0.0 be installed in the global assembly cache (GAC) first.

версия System.Windows.Interactivity в моем приложении 4.0.0.0. Так почему же он просил бы 4.5.0.0? Я даже не могу найти эту версию в Интернете.

на основе this question, я обновил свой app.config, чтобы это, но безрезультатно:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.5.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

На вкладке Список ошибок в Visual Studio, он имеет следующее предупреждение:

Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

Что я делаю неправильно? Благодарю.

+0

Нашли решение: Была версия 4.5 DLL под расширениями в диспетчере пакетов Nuget. Сначала удалила версию 4.0, а затем добавила версию 4.5. Опубликован снова, и он установлен без проблем. – Alex

ответ

1

По-видимому, MVVM Light Toolkit устанавливает в версии 4.5 версии System.Windows.Interactivity, что противоречило версии 4.0. Решение:

  1. Развернуть проектные ссылки.
  2. Найти System.Windows.Interactivity.
  3. Щелкните правой кнопкой мыши и выберите «Удалить».
  4. Щелкните правой кнопкой мыши ссылку и выберите Добавить ссылку.
  5. Под сборками> Расширения, установите флажок для System.Windows.Interactivity версии 4.5.0.0.
  6. Нажмите «ОК», чтобы закрыть ссылки.

Теперь опубликуйте снова, и установщик отлично работает. В рамках вышеизложенного исследования того, что вызывало конфликт, I enabled diagnostic output для сборки, которая создала подробный журнал. Примерно в строке 2 000 он включал в себя следующее:

Unified Dependency "System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". (TaskId:13) 
1>  Using this version instead of original version "4.0.0.0" in "C:\Users\myUserName\Documents\Visual Studio 2015\Projects\MyProject\packages\Blend.Interctivity.WPF.v4.0.1.0.3\lib\net40\Microsoft.Expression.Interactions.dll" because of a binding redirect entry in the file "App.config". (TaskId:13) 
1>  Resolved file path is "C:\Users\myUserName\Source\Workspaces\Workspace\packages\MvvmLightLibs.5.2.0.0\lib\net45\System.Windows.Interactivity.dll". (TaskId:13) 
1>  Reference found at search path location "C:\Users\myUserName\Source\Workspaces\Workspace\packages\MvvmLightLibs.5.2.0.0\lib\net45". (TaskId:13) 
1>   For SearchPath "C:\Users\myUserName\Source\Workspaces\Workspace\packages\MvvmLightLibs.5.2.0.0\lib\net45". (TaskId:13) 
1>   Considered "C:\Users\myUserName\Source\Workspaces\Workspace\packages\MvvmLightLibs.5.2.0.0\lib\net45\System.Windows.Interactivity.winmd", but it didn't exist. (TaskId:13) 
1>  Required by "GalaSoft.MvvmLight.Platform, Version=5.2.0.37226, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL". (TaskId:13) 
1>  Required by "Microsoft.Expression.Interactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". (TaskId:13) 
1>  This reference is not "CopyLocal" because it conflicted with another reference with the same name and lost the conflict. (TaskId:13) 
1>  The ImageRuntimeVersion for this reference is "v4.0.30319". (TaskId:13)