Я занимаюсь разработкой 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:
Не удалось загрузить файл или сборку 'System.Threading.Tasks.Dataflow, версия = 4.6.3.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' или одна из ее зависимостей. Система не может найти указанный файл.
Это, конечно, потому что файл удален из папки bin для веб-сайта. .Dll по-прежнему находится в папке bin для проекта, ссылающегося на него.
Кто / что удаляет файл?
Если я выполняю очистку и сборку или «Перестройка», .dll снова копируется в папку bin, и веб-сайт запускается в первый раз.
Если я остановлю и перезапущу его, файл снова будет удален.
Если я только остановлюсь и "Построю" решение, файл НЕ будет удален. Только когда я запускаю сайт.
Я попытался запустить без отладчика, но все еще проблема.
EDIT:
Я использовал Process Monitor, чтобы найти, что это «MSBuild.exe», который удаляет файл. Зачем это делать?