【发布时间】:2017-12-15 15:09:17
【问题描述】:
我想从源代码管理中排除 nuget 包,因为我们使用自己的自定义包,并且它们经常更改,因此会在源代码管理中产生太多不必要的更改。也因为它似乎是使用包和源代码控制的推荐方式。
我按照下面链接中给出的步骤,使用了 TFS 的说明: https://docs.microsoft.com/en-us/nuget/consume-packages/packages-and-source-control
启用了自动包恢复,但是当我生成解决方案时,恢复失败,因为它尝试从我们的自定义源而不是 nuget.org 源恢复 Microsoft 包,我不明白为什么。 例如(抱歉是法语):
La restauration des packages NuGet a échoué pour le projet PointOfSaleWebsite :
La version '3.2.3' du package 'Microsoft.AspNet.Razor.fr' est introuvable.
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Le package 'Microsoft.AspNet.Razor.fr.3.2.3' est introuvable dans la source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
http://srv-tfs:8080/tfs/.../_packaging/.../nuget/v3/index.json: Le package 'Microsoft.AspNet.Razor.fr.3.2.3' est introuvable dans la source 'http://srv-tfs:8080/tfs/.../_packaging/.../nuget/v3/index.json'.
我尝试将此添加到 NuGet.Config,但仍然有相同的错误:
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="OurCustomSource" value="http://srv-tfs:8080/tfs/.../_packaging/.../nuget/v3/index.json" />
</packageSources>
我还尝试在包管理器控制台中运行此命令:
Update-Package -Reinstall
失败并出现此错误:
Update-Package : Certains packages NuGet sont manquants dans la solution. Les packages doivent être restaurés pour générer le graphique de dépendance. Restaurez les packages avant d'effectuer des opé
rations.
Au niveau de ligne : 1 Caractère : 15
+ Update-Package <<<< -Reinstall
+ CategoryInfo : InvalidOperation: (:) [Update-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetMissingPackages,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand
知道为什么它会尝试从错误的来源恢复吗?还是我从源代码管理中排除软件包有问题?
【问题讨论】:
-
你使用的是 git 还是 TFS-VC?在前一种情况下,您的
.gitignore中有什么,在后一种情况下您的.tfignore文件是什么? -
TFS,但如果我错了,请纠正我,.tfignore 与包恢复失败无关?它只与从源代码管理中排除包有关。 .tfignore 的内容与我帖子中包含的链接中步骤 5 中显示的内容完全相同。
-
可能,但首先要检查的是如何设置排除项。第二个问题:缺少的软件包是您希望从 nuget 还是从 TFS 源获得的? (这将有助于切换到英语以获取错误消息的翻译。)
-
无法恢复的包来自 nuget,来自我们源的包恢复成功,因为它只从该源恢复并且不会尝试检查 nuget.org 源其他包。
标签: visual-studio-2017 nuget-package-restore