从 TFS 读取时未安装 NuGet 包
NuGet package is not being installed when reading from TFS
我们正在使用 Visual Studio 2019 并且我们有一个解决方案,该解决方案引用了来自 nuget.org 或来自我们的私人服务器的一些 NuGet 包,我们正在使用 packages.config 管理解决方案管理,问题是该解决方案中有一个 ASP.NET 项目没有安装 any 所需的包(在我们的例子中,它没有安装 NewtonSoft.json),并正确安装所有其他的,即使我们启用了包恢复,解决方案中还有其他 ASP.Net 项目正确安装了 Newtonsoft 包,但每次您阅读解决方案的最新版本时 从零开始(在你删除本地解决方案并重新读取它的情况下)从TFS,你需要专门为该项目手动安装Newtonsoft.json。
PS: 这是一个每次都可以在 5 分钟内解决的问题,但我知道出了什么问题,我一直在努力理解它是什么,我不想在本地解决它,但我需要一个在 TFS 级别解决它的解决方案,所以如果可以的话请帮助我,或者如果你知道这里有任何其他可以帮助的问题,请指导我完成(如果我没有已经看到了)。
我的NuGet.Config文档:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
<add key="MxNuget" value="our server path" />
</packageSources>
<activePackageSource>
<add key="All"
value="(Aggregate source)" />
</activePackageSource>
<packageRestore>
<add key="enabled" value="true" />
<add key="automatic" value="true" />
</packageRestore>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
我们得到的错误如下:
The name 'Newtonsoft' does not exist in the current context.
我遇到的问题是因为 TFS 没有恢复所有需要的包,因为当他在解决方案中看到文件夹 'Packages' 时,他只是检查是否包在里面,当他完成后,他找到的版本和本地机器上的版本可能不同,这就是导致问题的原因,所以我想删除 TFS 上的包文件夹,但我找不到它.为此,我在我的解决方案中安装了一个包,它将 .tfignore 添加到解决方案目录中的 .nuget 文件夹中,最后一个文件告诉 TFS忽略服务器上的包文件并始终恢复它们。
有用的问题:
1 -
2-
3- 外部:Missing Nuget Packages on TFS Build Server
我按照以下步骤解决了问题:
将包 DisableSourceControlIntegration 安装到缺少 Newtonsoft.json NuGet 的项目。
在我的ASP.Net项目引用的项目上统一了NewtonSoft.json的所有版本。 (我认为这是主要问题,因为我之前让他们统一了,但我用他们的配置文件更新了整个组)。
在visual studio中,打开Tools --> Nuget package manager --> package manager setting,确保选择Packages.config作为管理格式NuGet 包。
删除了所有现金包裹。
重新编译解决方案。
已推送到 TFS。
我们正在使用 Visual Studio 2019 并且我们有一个解决方案,该解决方案引用了来自 nuget.org 或来自我们的私人服务器的一些 NuGet 包,我们正在使用 packages.config 管理解决方案管理,问题是该解决方案中有一个 ASP.NET 项目没有安装 any 所需的包(在我们的例子中,它没有安装 NewtonSoft.json),并正确安装所有其他的,即使我们启用了包恢复,解决方案中还有其他 ASP.Net 项目正确安装了 Newtonsoft 包,但每次您阅读解决方案的最新版本时 从零开始(在你删除本地解决方案并重新读取它的情况下)从TFS,你需要专门为该项目手动安装Newtonsoft.json。
PS: 这是一个每次都可以在 5 分钟内解决的问题,但我知道出了什么问题,我一直在努力理解它是什么,我不想在本地解决它,但我需要一个在 TFS 级别解决它的解决方案,所以如果可以的话请帮助我,或者如果你知道这里有任何其他可以帮助的问题,请指导我完成(如果我没有已经看到了)。
我的NuGet.Config文档:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
<add key="MxNuget" value="our server path" />
</packageSources>
<activePackageSource>
<add key="All"
value="(Aggregate source)" />
</activePackageSource>
<packageRestore>
<add key="enabled" value="true" />
<add key="automatic" value="true" />
</packageRestore>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
我们得到的错误如下:
The name 'Newtonsoft' does not exist in the current context.
我遇到的问题是因为 TFS 没有恢复所有需要的包,因为当他在解决方案中看到文件夹 'Packages' 时,他只是检查是否包在里面,当他完成后,他找到的版本和本地机器上的版本可能不同,这就是导致问题的原因,所以我想删除 TFS 上的包文件夹,但我找不到它.为此,我在我的解决方案中安装了一个包,它将 .tfignore 添加到解决方案目录中的 .nuget 文件夹中,最后一个文件告诉 TFS忽略服务器上的包文件并始终恢复它们。
有用的问题:
1 -
2-
3- 外部:Missing Nuget Packages on TFS Build Server
我按照以下步骤解决了问题:
将包 DisableSourceControlIntegration 安装到缺少 Newtonsoft.json NuGet 的项目。
在我的ASP.Net项目引用的项目上统一了NewtonSoft.json的所有版本。 (我认为这是主要问题,因为我之前让他们统一了,但我用他们的配置文件更新了整个组)。
在visual studio中,打开Tools --> Nuget package manager --> package manager setting,确保选择Packages.config作为管理格式NuGet 包。
删除了所有现金包裹。
重新编译解决方案。
已推送到 TFS。