我有一个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的部分时,我的程序崩溃了。
在Copy Local设置为true的情况下,两个项目都引用了System.Threading.Tasks。在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>在设置这个的时候,我错过了什么?如果您需要更多信息,请让我知道。谢谢!
发布于 2013-10-17 04:31:21
我在项目网站上找到了一个解决方法:
http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx
分辨率
这是因为ClickOnce无法部署某些必需的程序集。作为一种解决方法,请执行以下操作:
1.右键单击项目并选择“添加现有项”
2.浏览至Microsoft.Bcl net40包文件夹
3.在File name文本框中输入。
4.按住Ctrl键,选择System.Runtime.dll和System.Threading.Tasks.dll
5.单击Add按钮旁边的向下箭头,然后选择Add as Link
6.在解决方案资源管理器中,按住Ctrl键选择System.Runtime.dll和System.Threading.Taks.dll
7.右键单击所选内容,选择属性,然后将复制到输出目录更改为始终复制
8.Republish
发布于 2013-08-29 05:52:48
单击一次将只包含3个主动态链接库的Microsoft.Threading.Tasks.dll、Microsoft.Threading.Tasks.Extensions.dll和Microsoft.Threading.Tasks.Extensions.Desktop.dll

但是,当您添加nuget包时,会添加另外两个依赖项,这两个依赖项不包括在可分发的System.Runtime.dll和System.Threading.Tasks.dll中。您可以看到,这两个引用的Path属性位于您的项目中,而不是在正常位置。

我不完全确定如何修复它,但至少现在您知道问题是什么了。
https://stackoverflow.com/questions/18498453
复制相似问题