每次Gated Checkin Build失败时,Nuget文件都会被锁定

时间:2014-08-27 17:54:04

标签: visual-studio tfs nuget gated-checkin

我知道NuGet恢复可以在包文件夹和包含的文件上放置checkout锁。但是,如果由于编译错误而导致Gated Checkin Build失败,为什么TFS Build不会释放这些锁?

当Gated Checkin Build失败时,Visual Studio不允许取消更改,因为文件被构建服务器上的TFS服务锁定。 Visual Studio does not allow unshelve changes because files are being locked by TFS Build

TFS Sidekick显示TFS服务帐户锁定了多个文件。 TFS Sidekick shows multiple files are being locked under TFS service account

2 个答案:

答案 0 :(得分:1)

选项1:您需要将.tfignore添加到packages文件夹中,并使用“* /”作为过滤器。除了配置文件之外,您实际上并不想检查此文件夹下的任何内容。

http://msdn.microsoft.com/en-us/library/ms245454.aspx

选项2 :(更好)将nuget.config文件添加到您的解决方案中,约定是将其放在名为.nuget的文件夹下 - 但它也可以保留在root用户。内容应该是:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
   <solution> 
      <add key="disableSourceControlIntegration" value="true" /> 
   </solution> 
</configuration> 

那将排除packages文件夹,你不需要任何东西。注意:如果您使用的是NuGet 2.7或更高版本,默认情况下会启用自动恢复。不要在解决方案中使用“启用NuGet Restore”,它会添加旧方法。见http://geekswithblogs.net/terje/archive/2014/06/11/converting-projects-to-use-automatic-nuget-restore.aspx

答案 1 :(得分:1)

如果您的解决方案设置为恢复NuGet包,您不需要将包检入TFS,因为它们将在构建时恢复,将解决方案设置为还原包将阻止TFS尝试将包添加到包中文件夹中。

正如MrHinsh所说,TFS中的您的包文件夹应该只包含配置文件