Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何防止VS2015 NuGet向TFS添加包_Visual Studio_Tfs_Nuget_Visual Studio 2015 - Fatal编程技术网

Visual studio 如何防止VS2015 NuGet向TFS添加包

Visual studio 如何防止VS2015 NuGet向TFS添加包,visual-studio,tfs,nuget,visual-studio-2015,Visual Studio,Tfs,Nuget,Visual Studio 2015,VS2013有一个bug,NuGet会将包添加为挂起的更改,即使您告诉它不要使用.tfignore。有一个,但它不适用于VS2015/NuGet3,NuGet又回到了它的老把戏。是否有“Nu”解决方案?:-) Microsoft Connect项目:我也有同样的问题,但我还没有找到真正的解决方案 到目前为止,我找到的唯一解决办法是: 右键单击“团队资源管理器-挂起的更改”中的“包”文件夹 然后选择“撤消” 看起来这在NuGet Visual Studio 2015扩展版中已经修复了—至少更新到

VS2013有一个bug,NuGet会将包添加为挂起的更改,即使您告诉它不要使用
.tfignore
。有一个,但它不适用于VS2015/NuGet3,NuGet又回到了它的老把戏。是否有“Nu”解决方案?:-)


Microsoft Connect项目:

我也有同样的问题,但我还没有找到真正的解决方案

到目前为止,我找到的唯一解决办法是:

  • 右键单击“团队资源管理器-挂起的更改”中的“包”文件夹 然后选择“撤消”

看起来这在NuGet Visual Studio 2015扩展版中已经修复了—至少更新到这个版本对我来说是有效的

关于这个问题的讨论可以在建议从NuGet 3.1更新到3.2 RC的地方找到

更新

扩展的3.2版现已发布(找到),其中包含此修复程序

澄清

要使其正常工作,您需要两件事:

  • 包含
    disableSourceControlIntegration
    设置的
    nuget.config
    文件
  • NuGet Visual Studio 2015扩展的一个版本,它尊重
    disableSourceControlIntegration
    设置(3.2以后的版本应该可以使用)
  • 如图所示:

    NuGet首先从默认位置加载NuGet.config,然后加载从当前驱动器根目录开始并在当前目录中结束的任何名为NuGet.config的文件


    这意味着您可以为您的用户配置文件指定
    (位于
    %APPDATA%\NuGet\NuGet.Config
    )或解决方案目录中的NuGet Config文件,例如
    \MySolution\.NuGet\NuGet.Config
    %APPDATA%\NuGet\NuGet.Config
    文件中,在
    XML标记之前添加以下内容

    <config>
      <add key="repositoryPath" value="C:\NuGetPackages" />
    </config>
    <solution>
      <add key="disableSourceControlIntegration" value="true" />
    </solution>
    
    
    
    …您可以指定所需的任何路径-重要的是将其置于TFS工作区之外

    现在你再也不用担心那些事了。您的解决方案文件夹将不再包含任何包;所有解决方案将默认使用您的自定义包位置

    注-这项工作是在每个用户的基础上

    到目前为止,我一直在以每个解决方案一个配置(
    \.nuget\nuget.config
    )的方式进行相同的操作。感谢@dsghi的洞察力


    确保您的解决方案文件夹不包含
    .nuget
    文件夹(旧方法)。即使该文件夹未包含在解决方案中且仅包含在文件系统中,它也会覆盖所有内容

    解决方法实际上只是第一步。“撤消挂起的更改”不会删除文件,而且您不必立即签入。不过,有一个合理的解决办法是好的,也许存在也是让这个虫子这么长时间得不到爱的诅咒。是的,你是对的。我想得太多了。这不是你想要的答案,但在我的头撞在TFS的墙上几年后,我说服了我的团队git是一条出路
    .gitignore
    的工作原理与您预期的一样:-)我发现将
    disableSourceControlIntegration
    选项添加到
    %APPDATA%\NuGet\NuGet.config
    的默认配置文件中最简单,就像这样:
    @dsghi您刚刚为我解决了一些自2013年以来一直困扰我的问题。我从来不知道有一个全局nuget.config文件@请记住,如果扩展已经存在(即packages文件夹已经在源代码管理中),那么简单地更新扩展可能无法解决此问题。在这种情况下,在VS开始忽略它之前,您需要从TFS中删除packages文件夹。使用Visual Studio的NuGet Package Manager的3.3.0.167。在
    向源代码管理添加解决方案时,它添加了packages文件夹、子文件夹、二进制文件等。我认为这个答案不起作用。@Mikee除非我误解了你,因为缺少nuget.config文件(以及
    disableSourceControlIntegration
    指令)这就是为什么要签入这些包。这是可行的,但你确实有两个答案。我只想
    disableSourceControlIntegration
    不想为
    repositoryPath
    选择一个新位置。这样做的原因很可能是因为您已经更新了NuGet VS 2015扩展的版本。在3.1版中,无论配置文件在哪里,
    disableSourceControlIntegration
    设置都不起作用。嗯,这很奇怪。我也从2013年开始做这件事。我的意思是,3.1打破了对该设置的支持——在这之前和之后都运行良好。