我正在开发针对.NET Framework 4.7的ASP.NET Core Web-API。
我的解决方案中的项目依赖于System.Threading.Tasks.Dataflow v4.9.0(作为nuget包添加)。
这些步骤重现了我的问题:
在第4步中,该网站引发FileNotFoundException:
无法加载文件或程序集'System.Threading.Tasks.Dataflow,版本= 4.6.3.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。
这当然是因为文件已从网站的bin文件夹中删除。 .dll仍在引用它的项目的bin文件夹中。
谁/什么将删除文件? 如果我执行清理和构建或“重建”操作,则.dll将再次复制到bin文件夹中,并且该网站将首次运行。
如果我停止并重新启动它,该文件将再次被删除。
如果仅停止并“构建”解决方案,则不会删除该文件。仅当我运行网站时。
我试图在没有调试器的情况下运行,但是仍然存在相同的问题。
编辑:
我已使用Process Monitor来找到删除文件的文件是“ MSBuild.exe”。为什么要这么做?
答案 0 :(得分:0)
好吧,我知道了:
我的解决方案中有另一个项目引用了较旧的“ Microsoft.Tpl.Dataflow” v.4.5.24 nuget包来使用Dataflow。
一旦我卸载了这个旧的nuget软件包并添加了“ System.Threading.Tasks.Dataflow” v4.9.0,MSBuild便不再删除我的文件。
仍然有点奇怪,它仅在第二次运行时删除了文件,但现在可以正常工作!