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

VS2022中C#项目降级OPCLabs.EasyOPC NuGet包后仍报旧版本文件缺失错误

问题:OPCLabs.EasyOPC降级后仍寻找旧版本依赖文件

在VS 2022的C#项目中,因V5.71版本存在功能问题,卸载该版本并降级安装了OPCLabs.EasyOPC NuGet包V5.62。已确认项目依赖树中仅存在V5.62版本,清理重建项目无编译错误,但调用库函数时仍报错:

"The system cannot find the file specified.File name: 'OpcLabs.EasyOpcClassicCore, Version=5.71.401.1, Culture=neutral, PublicKeyToken=6faddca41dacb409'"

触发报错的代码如下:

using OpcLabs.EasyOpc;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.OperationModel;

private async Task Browse_OPC_Servers()
{
    var client = new EasyDAClient();
    client.InstanceParameters.EnableNetApiClient = false;
    ServerElementCollection serverElements;
    try
    {
        serverElements = client.BrowseServers("10.92.XXX.XXX");
    }
    catch (OpcException opcException)
    {
        Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
        Console.ReadLine();
        return;
    }

    foreach (ServerElement serverElement in serverElements)
    {
        Console.WriteLine($"ServerElements(\"{serverElement.ClsidString}\").ProgId: {serverElement.ProgId}");
        
    }
    Console.ReadLine();
}
解决方法
  • 检查并修改配置文件版本绑定
    打开项目根目录下的app.config(Web项目为web.config),查找是否存在OpcLabs.EasyOpcClassicCore的版本重定向配置。若有旧版本绑定条目,直接删除或修改为5.62对应版本号,示例:

    <dependentAssembly>
      <assemblyIdentity name="OpcLabs.EasyOpcClassicCore" publicKeyToken="6faddca41dacb409" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.71.401.1" newVersion="5.62.XXX.X" />
    </dependentAssembly>
    

    注:将XXX.X替换为V5.62实际版本号,可从NuGet包详情页查看。

  • 清理NuGet本地缓存
    关闭VS2022,打开命令提示符执行以下命令清空NuGet缓存:

    nuget locals all -clear
    

    完成后重新打开项目,执行NuGet包还原操作。

  • 删除项目输出与中间文件
    手动删除项目目录下的bin和obj文件夹,这些目录可能残留旧版本DLL。删除后重新编译项目。

  • 检查项目文件中的直接引用
    右键项目 → 卸载项目 → 右键编辑.csproj文件,查找是否存在旧版本OpcLabs.EasyOpcClassicCore的引用条目,如:

    <Reference Include="OpcLabs.EasyOpcClassicCore, Version=5.71.401.1, ...">
      <HintPath>...</HintPath>
    </Reference>
    

    若存在,删除该引用或修改版本号为5.62对应版本,保存后重新加载项目。

  • 清理全局程序集缓存(GAC)
    以管理员身份打开命令提示符,输入以下命令查看GAC中是否存在旧版本程序集:

    gacutil -l OpcLabs.EasyOpcClassicCore
    

    若存在5.71版本,执行以下命令卸载:

    gacutil -u OpcLabs.EasyOpcClassicCore,Version=5.71.401.1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:46:13