我有一个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库。我通过Nuget在实际使用Async / Await调用的项目和引用它的项目上安装了它。一切都在我的计算机上完美运行,但是当我在另一台计算机上发布和测试时,当我尝试使用Async / Await的部分时,我的程序崩溃了。
System.Threading.Tasks在Copy Local设置为true的两个项目中都被引用。在Copy Local设置为true的两个项目中引用Microsoft.Threading.Tasks。我已经看到the other thread关于此问题,它已安装在相关项目中。这些是我的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>
设置此内容我错过了什么?如果您需要更多信息,请告诉我。谢谢!
答案 0 :(得分:9)
我在项目网站上发现了一个解决方法:
http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx
分辨率
这是因为ClickOnce无法部署某些必需的程序集。要解决此问题,请执行以下操作:
1.右键单击项目,然后选择添加现有项
2.浏览Microsoft.Bcl net40包文件夹
3.在文件名文本框中输入。
4.Holding CTRL,选择System.Runtime.dll和System.Threading.Tasks.dll
5.单击“添加”按钮旁边的向下箭头,然后选择“添加为链接”
6.在Solution Explorer中,按住CTRL选择System.Runtime.dll和System.Threading.Taks.dll
7.右键单击所选内容,选择“属性”,然后将“复制到输出目录”更改为“始终复制”
8.Republish
答案 1 :(得分:1)
点击一次只会包含3个主要的Microsoft.Threading.Tasks.dll
,Microsoft.Threading.Tasks.Extensions.dll
和Microsoft.Threading.Tasks.Extensions.Desktop.dll
但是,当您添加未包含在可分发System.Runtime.dll
和System.Threading.Tasks.dll
中的nuget包时,还有一些更多的DLL是添加的两个依赖项。您可以看到{{1这两个引用的属性在你的项目中,而不是在正常位置。
我不完全确定如何修复它,但至少现在你知道问题是什么了。