You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019开发应用访问TFS Server 2010遇ZeroMemory错误如何解决?

解决方案

问题根源

直接引用VS2019安装目录下的Microsoft.TeamFoundation.Client.dll等文件是错误的——这些DLL是VS内部专属组件,仅为VS自身运行场景设计,不支持独立部署,且与你当前使用的.NET 5存在兼容性冲突,最终导致ZeroMemory入口点找不到的运行异常。

具体解决步骤

1. 移除本地DLL引用,改用兼容的NuGet包

放弃手动添加VS安装目录的DLL,通过NuGet安装专门适配TFS2010的客户端库:

  • 安装包名称:Microsoft.TeamFoundationServer.Client
  • 推荐版本:12.0.30723(该版本是最后一批完全兼容TFS2010的正式版,同时支持在.NET Framework 4.5+环境稳定运行)

2. 调整项目目标框架(关键)

TFS2010的客户端库对.NET Framework的支持远优于.NET Core/.NET 5+,建议将项目从.NET 5改为NET Framework 4.7.2或更高版本:

  • 在VS中右键项目 → 属性 → 应用程序 → 目标框架,选择对应的.NET Framework版本。

3. 修改代码规避凭据缓存异常

异常触发于凭据缓存加载环节,可通过显式控制凭据逻辑解决:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.VisualStudio.Services.Client;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            var tfsUri = new Uri(@"http://tfs:8080/tfs/DefaultCollection");
            
            // 禁用凭据缓存,避免加载缓存时的异常
            var credentials = new VssClientCredentials();
            credentials.PromptType = CredentialPromptType.PromptIfNeeded;
            credentials.Storage = null;

            var collection = new TfsTeamProjectCollection(tfsUri, credentials);
            // 手动触发认证,确保连接成功
            collection.EnsureAuthenticated();
            
            // 后续添加工作项查询逻辑示例
            var workItemStore = collection.GetService<WorkItemStore>();
            // ...
        }
    }
}

4. 部署验证

编译完成后,输出目录会自动包含所有必需的依赖DLL,目标机器无需安装VS2019或Team Explorer,只需安装对应的.NET Framework运行时即可正常运行工具。

内容的提问来源于stack exchange,提问作者Gang YIN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:43:14