Team foundation 在 RestSharp 和 NewtonSoft 上构建错误

Team foundation Build errors on RestSharp and NewtonSoft

我可以毫无问题地在本地构建我的分支,但是当我尝试通过 team foundation 构建时,我遇到了 2 个错误。这些错误是在我最近添加到解决方案的项目中产生的。

错误是:

EnvoyClient.cs(3,7): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?) [c:\TF-Agents\Agent2017-002\_work\s\System\Envoy.Connector\Envoy.Connector.csproj]

EnvoyClient.cs(4,7): error CS0246: The type or namespace name 'RestSharp' could not be found (are you missing a using directive or an assembly reference?) [c:\TF-Agents\Agent2017-002\_work\s\System\Envoy.Connector\Envoy.Connector.csproj]

我尝试删除 nuget 包并重新添加到我的本地分支,然后再次请求它们到我想在 tf-server 上构建的分支,但无济于事。

来自 OP 的更新:

所以问题是没有加载 nuget 包,因为这个项目不是解决方案的一部分。

我必须将我的新项目(带有这 2 个引用)添加到该解决方案,然后它才能完美构建。


EnvoyClient.cs(3,7): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)

对于此类问题,如果您的本地构建成功而只是TFS 构建失败,则通常是由于dll 引用路径问题。确保 Dll 在项目文件 (.csproj) 中被 引用为相对路径

要在单独的目录中添加相对引用,请执行以下操作:

通过右键单击解决方案资源管理器中的项目并选择“添加引用”,在 Visual Studio 中添加引用。

找到此引用所在的 *.csproj 并在文本编辑器中打开它。假设您的 .csproj 位置是 c:\tfs_get\sources\myfolder\myproject\myproj.csproj

编辑为等于

..\..\assembly\xxx.dll

另外,正如 Daniel 所建议的,请仔细检查您的构建过程是否包含 NuGet 恢复步骤。

此外,您应该保持您的构建服务器环境与本地环境相同。请仔细检查一下。对于故障排除,您可以尝试手动远程访问该 tfs 构建代理 运行 您在其上的构建。

问题是没有加载 nuget 包,因为这个项目不是解决方案的一部分

IIRC 建立这个不同的解决方案是因为我们有一个同步不需要我们的主要解决方案一侧的所有项目。构建大型解决方案需要 10 多分钟。所以我们为同步创建了一个更小的解决方案。我的 nuget 包加载正确,但由于缺少该项目,他没有加载它们,随后的构建失败了。但是恢复 nuget 包的步骤非常有效