有没有办法从 MSBuild 进程中卸载自定义 MSBuild 任务?

Is there a way to unload custom MSBuild task from MSBuild process?

我的自定义 MSBuild 任务与同一文件夹中的依赖项 (我从 NuGet 复制到单独文件夹的其他 .NET 程序集与我的任务,因为 MSBuild 无法在其他地方找到引用,如 NuGet 包缓存,所以我使用 @(ReferencePathWithRefAssemblies) 获取所有项目引用,因为我的任务是 NuGet包其他引用将由 NuGet 自动安装)。 问题是我需要清理这个文件夹,然后再次从一个版本复制引用到另一个版本,以确保在加载 task() 之前所有 NuGet 引用都在那里,但是一旦我的任务加载,MSBuild 就会持有文件锁,所以我无法清理这个文件夹起来。 通过停止所有 MSBuild.exe 进程,我可以释放所有锁并且文件夹清理工作顺利进行。 那么可能有一些方法可以指示 MSBuild 在构建完成后卸载我的任务和所有依赖程序集吗?

看起来目前唯一的解决方案是将环境变量 MSBUILDDISABLENODEREUSE 设置为 1,以便指示 MSBuild 在构建完成后杀死所有节点,因此锁定不再举行了。使用自定义 .dll 任务实现。