2017-11-01 14 views
1

ViewModelsを含み、MvvmLightを使用する.NET Standard 2.0ライブラリを参照するWPFアプリケーションがあります。 GalaSoft.MvvmLight.Messaging.Messengerを使用してViewModelsからのメッセージをリッスンするエラーハンドラを作成しました。 Visual Studioで展開されたWPF ClickOnceアプリケーションでファイルまたはアセンブリ 'System.Runtime'を読み込めませんでした.Net標準ライブラリからMvvmLightを参照しています

、アプリが正常に動作が、私はClickOnceのを使ってアプリを公開する際、次にインストールし、それを実行しようと、次の例外が発生します。

FileNotFoundException

例外は以下からスローされます行:

Messenger.Default.Register<Error>(this, ErrorHandler.DisplayError); 

私はほとんど空のプロジェクトで失敗を再現することができました。 SystemRuntimeFail Demo

3日後にこれを修正してすべてを試してみると、私は自分自身で見たいと思っているプロジェクトのgithubリポジトリへのリンクです。私の知恵はほとんど終わりです。助けてください!

+0

を固定this repositoryに変更をプッシュしますが、これを読んでいましたか? https://stackoverflow.com/questions/42755274/visual-studio-2017-could-not-load-file-or-assembly-system-runtime-version-4 – mm8

+0

はい、私はやったが、残念ながらそれは役に立たなかった。私はすでに私のメインプロジェクトでNetStandard.Libraryへの参照を持っていました(私はこれをSystemRuntimeFailのデモにも追加しました)。バインディングリダイレクトを追加しようとしましたが、残念ながらリダイレクト先のバージョンがわかりませんし、それをどのように把握するかもわかりません。 – Katie

答えて

1

私はこの問題が発生した各アセンブリに対してapp.configへのバインディングリダイレクトを追加することで問題を解決できました。

<dependentAssembly>のすべてを囲んでいる<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">タグを含むthis answerによってトリップされました。私がこれを試してみると、うまくいかなかった。私が進めたその囲みタグを取り除こうとするまではなかった。私は、各アセンブリのために縛られたリダイレクトを追加しました。

以下は私の完全なapp.configです。私はこの問題を解決するために、追加するために必要な部分は<runtime>タグ

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> 
    </startup> 
    <runtime> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Collections" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" /> 
    </dependentAssembly> 
    </runtime> 
</configuration> 

内のすべてだった私は、問題

関連する問題