1

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

当 Gated Checkin Build 失败时,Visual Studio 不允许取消搁置更改,因为文件被构建服务器上的 TFS 服务锁定。 Visual Studio 不允许取消搁置更改,因为文件被 TFS 构建锁定

TFS Sidekick 显示多个文件被 TFS 服务帐户锁定。 TFS Sidekick 显示多个文件被锁定在 TFS 服务帐户下

4

2 回答 2

1

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

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

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

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

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

于 2014-08-28T04:30:33.447 回答
1

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

正如 MrHinsh 所说,您在 TFS 中的 packages 文件夹应该只包含 Config 文件

于 2014-08-28T08:49:36.680 回答