TFS 2015 在上一次成功构建后无法删除 NUnit 测试 dll
TFS 2015 Cannot delete NUnit test dlls after previous successful build
我正在 运行使用 NUnit 和 NUnit 测试适配器 NuGet 包在 TFS 2015 中进行一些非常简单的单元测试,但让测试通过的唯一方法是重新启动 TFS 服务,然后项目构建和测试通过一次。下次我 运行 时,我收到以下错误。
Build
(-1, 0)
Exception Message: Access to the path 'C:\Builds\RGDAgile\RGD.Common\src\RGD.Common\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll' is denied. (type UnauthorizedAccessException)
Exception Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteFile(String path, Boolean throwExceptionOnFailure)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectory(String path, Boolean recursive, Boolean handleLongPaths)
at Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
好像之前的构建没有释放对 dll 的控制,所以下一次构建时 运行 它无法清除目录以拉下新代码。
如有任何帮助,我们将不胜感激。我不能成为 TFS 2015 上唯一 运行ning NUnit 的人
当 packages
文件夹签入源代码管理时,我看到过这样的行为。删除 packages
文件夹(理想情况下,通过 NuGet.config
的设置忽略它!)并让构建过程适当地恢复包。
您还应该考虑迁移到新的构建系统,因为它在大多数方面都优于旧的 XAML 构建系统。
我最终将 NUnitTestAdapter 添加到构建服务器上可以自动找到和使用的位置。然后可以将它从从 NuGet 获取的包中删除。
如此处所述
http://www.codewrecks.com/blog/index.php/2015/03/16/running-nunit-tests-in-a-tfs-2015-build-vnext/
我正在 运行使用 NUnit 和 NUnit 测试适配器 NuGet 包在 TFS 2015 中进行一些非常简单的单元测试,但让测试通过的唯一方法是重新启动 TFS 服务,然后项目构建和测试通过一次。下次我 运行 时,我收到以下错误。
Build
(-1, 0)
Exception Message: Access to the path 'C:\Builds\RGDAgile\RGD.Common\src\RGD.Common\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll' is denied. (type UnauthorizedAccessException)
Exception Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteFile(String path, Boolean throwExceptionOnFailure)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectory(String path, Boolean recursive, Boolean handleLongPaths)
at Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
好像之前的构建没有释放对 dll 的控制,所以下一次构建时 运行 它无法清除目录以拉下新代码。
如有任何帮助,我们将不胜感激。我不能成为 TFS 2015 上唯一 运行ning NUnit 的人
当 packages
文件夹签入源代码管理时,我看到过这样的行为。删除 packages
文件夹(理想情况下,通过 NuGet.config
的设置忽略它!)并让构建过程适当地恢复包。
您还应该考虑迁移到新的构建系统,因为它在大多数方面都优于旧的 XAML 构建系统。
我最终将 NUnitTestAdapter 添加到构建服务器上可以自动找到和使用的位置。然后可以将它从从 NuGet 获取的包中删除。
如此处所述
http://www.codewrecks.com/blog/index.php/2015/03/16/running-nunit-tests-in-a-tfs-2015-build-vnext/