我知道NuGet恢复可以在包文件夹和包含的文件上放置checkout锁。但是,如果由于编译错误而导致Gated Checkin Build失败,为什么TFS Build不会释放这些锁?
当Gated Checkin Build失败时,Visual Studio不允许取消更改,因为文件被构建服务器上的TFS服务锁定。
TFS Sidekick显示TFS服务帐户锁定了多个文件。
答案 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中的您的包文件夹应该只包含配置文件