我有我的自定义MSBuild任务,其依赖项位于同一个文件夹中(其他.NET程序集从NuGet复制到与任务分离的文件夹中,因为MSBuild无法在其他地方(如NuGet packages cache )找到引用,所以我使用@(ReferencePathWithRefAssemblies)获取所有项目引用,因为我的任务是NuGet包--其他引用将由NuGet自动安装)。问题是我需要清理这个文件夹,然后再次从build复制引用到build,以确保在加载NuGet ()之前所有的MSBuild引用都在那里,但是一旦我的任务加载了,MSBuild就会保存文件锁,所以我无法清理这个文件夹。通过停止所有的MSBuild.exe进程,我可以释放所有的锁和文件夹清理进行顺利。因此,也许有某种方法可以指示MSBuild卸载我的任务,并且在构建完成后所有依赖程序集都已完成?
发布于 2021-12-07 00:25:21
现在唯一的解决方案是将环境变量MSBUILDDISABLENODEREUSE
设置为1
,以便指示MSBuild
在构建完成后杀死所有节点,这样锁就不再被保存。使用自定义.dll
任务实现该功能。
https://stackoverflow.com/questions/62266849
复制相似问题