6

次のエラーでクラッシュする VB.NET アプリケーションがあります。

System.IO.FileNotFoundException: Could not load file or assembly 'System.Threading.Tasks, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'System.Threading.Tasks, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

Microsoft.Bcl.Async ライブラリを使用しようとしています。実際に Async/Await 呼び出しを使用するプロジェクトとそれを参照するプロジェクトに Nuget 経由でインストールしました。私のコンピューターではすべてが完全に機能しますが、別のコンピューターで公開してテストすると、Async/Await を使用している部分を使用しようとすると、プログラムがクラッシュします。

System.Threading.Tasks は、Copy Local が true に設定された両方のプロジェクトで参照されます。Microsoft.Threading.Tasks は、Copy Local が true に設定された両方のプロジェクトで参照されます。これに関する他のスレッドを見たことがありますが、関連するプロジェクトにインストールされています。これらは私の app.config ファイルに含まれる行です:

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
  </dependentAssembly>

これを設定すると何が欠けていますか? さらに情報が必要な場合はお知らせください。ありがとうございました!

4

2 に答える 2

9

プロジェクトサイトに投稿された回避策を見つけました:

http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx

解像度

これは、ClickOnce が特定の必要なアセンブリの展開に失敗したために発生します。回避策として、次の手順を実行します。

1. プロジェクトを右クリックし、[既存の項目を追加] を選択します。

2. Microsoft.Bcl net40 パッケージ フォルダーを参照します。

3. [ファイル名] テキスト ボックスに と入力します。

4. CTRL を押しながら、System.Runtime.dll と System.Threading.Tasks.dll を選択します。

5. [追加] ボタンの横にある下向き矢印をクリックし、[リンクとして追加] を選択します。

6.ソリューション エクスプローラーで、CTRL を押しながら System.Runtime.dll と System.Threading.Taks.dll を選択します。

7.選択範囲を右クリックし、[プロパティ] を選択して、[出力ディレクトリにコピー] を [常にコピー] に変更します。

8.再発行

于 2013-10-16T20:31:21.197 に答える
1

1 回クリックするとMicrosoft.Threading.Tasks.dll、3 つの主要な DLL のみが含まれます。Microsoft.Threading.Tasks.Extensions.dllMicrosoft.Threading.Tasks.Extensions.Desktop.dll

ここに画像の説明を入力

ただし、配布可能ファイルに含まれていない nuget パッケージを追加するときに追加される 2 つの依存関係である DLL がいくつかありますSystem.Runtime.dll。これらの 2 つSystem.Threading.Tasks.dllの参照のPathプロパティは、通常の場所ではなく、プロジェクト内にあることがわかります。

ここに画像の説明を入力

修正方法は完全にはわかりませんが、少なくとも問題が何であるかはわかりました。

于 2013-08-28T21:52:47.523 に答える