Nuget DisableSourceControlIntegration不起作用

Ton*_*871 4 tfs nuget azure-devops

我正在尝试遵循无提交策略,在使用NuGet时将程序集保留在TFS之外.我希望项目能够自动恢复依赖项,而不是向TFS添加挂起的更改.

我已经阅读了几种方法来做到这一点; 一个正在使用.tfignore,这将是我们拥有的项目数量的痛苦.我们可以在TFS中隐藏文件夹,但我们需要为每个项目添加packages文件夹以隐藏它.最后一种方法是使用disableSourceControlIntegration通过NuGet.config配置NuGet,这将使NugetClient不会将包添加到项目或解决方案中.

**这是我正在使用的配置XML:

<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
Run Code Online (Sandbox Code Playgroud)

如果我将它放在我的{SolutionDir} .nuget文件夹中,它适用于该解决方案.我正在尝试将它放在我的%AppData%\nuget文件夹中,以便它应用于所有解决方案,但包恢复仍然导致TFS添加我的包文件夹内容.

我正在使用Visual Studio 2013,NuGet 2.8.6和VSOnline的TFS.**

Isa*_*110 8

我不认为有一种方法可以将此密钥放在根位置,看起来Nuget只在{SolutionDir} .nuget文件夹中指定密钥时才会使用该密钥.Nuget文档明确提到此密钥在解决方案级别工作,需要添加到{SolutionDir} .nuget文件夹.

源控制集成"解决方案"部分下的"disableSourceControlIntegration"允许您禁用"Packages"文件夹的源代码控制集成.此密钥在解决方案级别工作,因此需要添加到"$(SolutionDir).nuget目录"中的NuGet.config文件中.此键的默认值为true.

编辑和更新:感谢@ TonyStewart871查找此信息.我没有在3.2版中测试过,也没有找到官方文档.

但是根据GITHUB LINK评论部分,从NuGet 3.2版开始,可以在用户级别为%appdata%\nuget \nuget.config文件中的所有解决方案添加密钥"disableSourceControlIntegration",而不是在单个解决方案级别添加.请在下面找到deepakaravindr的评论:

"您不仅可以将设置添加到解决方案级别nuget.config,还可以添加到%appdata%\nuget的nuget.config.这也可以.它只会应用于您在该计算机上打开的每个解决方案.请记住将以下部分作为子项添加到<configuration>部分.请注意,该设置应始终位于<solution>部分下以使其工作"

<solution>
    <add key="disableSourceControlIntegration" value="true" />
</solution>
Run Code Online (Sandbox Code Playgroud)

NUGET文档