第二次启动ASP.NET核心网站时DLL从bin中删除
DLL is deleted from bin when starting ASP.NET Core website for the second time
我正在开发 ASP.NET Core Web-API 目标 .NET Framework 4.7。
我的解决方案中的一个项目依赖于 System.Threading.Tasks.Dataflow v4.9.0(作为 nuget 包添加)。
这些步骤重现了我的问题:
- 清洁溶液
- 运行网站(bin文件夹有System.Threading.Tasks.Dataflow.dll)
- 停止网站(bin文件夹有System.Threading.Tasks.Dataflow.dll)
- 运行 网站(System.Threading.Tasks.Dataflow.dll 已从 bin 文件夹中删除)。
在第 4 步,站点抛出 FileNotFoundException:
Could not load file or assembly 'System.Threading.Tasks.Dataflow, Version=4.6.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
这当然是因为该文件已从该网站的bin 文件夹中删除。 .dll 仍在引用它的项目的 bin 文件夹中。
Who/what 正在删除文件?
如果我进行清理并构建或 "Rebuild",.dll 将再次复制到 bin 文件夹中,并且第一次复制网站 运行s。
如果我停止并重新启动它,文件又被删除了。
如果我只停止并 "Build" 解决方案,文件不会被删除。只有当我运行的网站。
我试过 运行 没有调试器,但仍然是同样的问题。
编辑:
我用Process Monitor发现是"MSBuild.exe"在删除文件。为什么要这样做?
好的,我明白了:
我的解决方案中还有另一个项目引用了较旧的 "Microsoft.Tpl.Dataflow" v.4.5.24 nuget 包来使用 Dataflow。
一旦我卸载了这个旧的 nuget 包并添加了 "System.Threading.Tasks.Dataflow" v4.9.0,MSBuild 就不再删除我的文件了。
仍然有点奇怪,它只在第二个 运行 删除了文件,但现在可以了!
我正在开发 ASP.NET Core Web-API 目标 .NET Framework 4.7。
我的解决方案中的一个项目依赖于 System.Threading.Tasks.Dataflow v4.9.0(作为 nuget 包添加)。
这些步骤重现了我的问题:
- 清洁溶液
- 运行网站(bin文件夹有System.Threading.Tasks.Dataflow.dll)
- 停止网站(bin文件夹有System.Threading.Tasks.Dataflow.dll)
- 运行 网站(System.Threading.Tasks.Dataflow.dll 已从 bin 文件夹中删除)。
在第 4 步,站点抛出 FileNotFoundException:
Could not load file or assembly 'System.Threading.Tasks.Dataflow, Version=4.6.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
这当然是因为该文件已从该网站的bin 文件夹中删除。 .dll 仍在引用它的项目的 bin 文件夹中。
Who/what 正在删除文件? 如果我进行清理并构建或 "Rebuild",.dll 将再次复制到 bin 文件夹中,并且第一次复制网站 运行s。
如果我停止并重新启动它,文件又被删除了。
如果我只停止并 "Build" 解决方案,文件不会被删除。只有当我运行的网站。
我试过 运行 没有调试器,但仍然是同样的问题。
编辑:
我用Process Monitor发现是"MSBuild.exe"在删除文件。为什么要这样做?
好的,我明白了:
我的解决方案中还有另一个项目引用了较旧的 "Microsoft.Tpl.Dataflow" v.4.5.24 nuget 包来使用 Dataflow。
一旦我卸载了这个旧的 nuget 包并添加了 "System.Threading.Tasks.Dataflow" v4.9.0,MSBuild 就不再删除我的文件了。
仍然有点奇怪,它只在第二个 运行 删除了文件,但现在可以了!