让TFS忽略我的包裹文件夹

马特:

我正在尝试让TFS(2013)忽略我的packages文件夹。我非常希望不要因为我使用NuGet而对其进行源控制,这太好了!

我尝试了伪装(似乎不起作用),我尝试了添加.tfignore文件-不会忽略任何内容。为什么TFS团队不像许多Subversion客户端一样添加一个永久忽略文件夹或文件的选项?

Pharylon:

解决方法是:我们必须告诉NuGet TFS都忽略软件包,因为NuGet试图做绝对不应该做的与源代码控制相关的事情(不好的形式,微软!)。因此,您必须做两件事。

首先,添加一个名为文件.tfignore到解决方案文件夹(注意缺少stf)。其内容应如下:

\packages

这告诉TFS忽略您的packages文件夹。现在,您会认为这也会忽略该repositories.config文件。但是不会。为什么?谁知道,微软的方式是奇怪而神秘的。实际上,我认为这是我在下面概述的NuGet内容的一部分,但是如果将来修复了该问题,并且您希望保留repositories.config文件而不是让VS重新生成它,则应该可以使用此文件:

\packages
!\packages\repositories.config

好的,现在感谢我们的.tfignore文件,TFS将忽略您的软件包。一切都很好,对吧?,因为NuGet正在与源代码管理混在一起,并将软件包添加到您的未决更改中。因此,现在让我们告诉NuGet已将其裁剪掉。

.nuget在解决方案文件夹的根目录中创建一个名为的文件夹。1现在,创建一个名为的文件NuGet.config,并将其放在此新文件夹2中其内容应如下所示:

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

现在你的软件包应该留源失控。只需记住将NuGet.config.tfignore文件添加到源代码管理中,这样它们就不会丢失。

编辑:如果您遇到问题,则可能要删除您的packages文件夹,签入该更改,然后执行上述步骤。

还编辑:看来新版本的Nuget不会发生这种情况。因此,如果您切换到VS / TFS 2017,则可能会解决此问题,而无需跳过上面的说明。

1使用源代码管理资源管理器添加文件夹;右键单击解决方案->添加文件夹->。nuget
2当我使用VS 2013弄清楚这一点时,我发现NuGet.config必须放在.nuget文件夹中。即使您的解决方案文件夹的根目录中已经有一个NuGet.config文件(例如,因为您的公司具有内部nuget提要)。但是,其中的一些注释表明它在VS 2015的解决方案根目录中可以正常工作。就我个人而言,我切换为在git模式下使用TFS,因此无法测试。另外,如果您确实有一个自定义提要,请确保同时将自定义提要和nuget.org都作为Nuget.config文件中的键,否则有时TFS会随机决定它无法还原软件包。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章