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

VS2022+C#开发的Tekla Open API程序无法连接Tekla Structures 2024求助

问题描述

我在Microsoft Visual Studio 2022中用C#编写了两个Tekla Structures相关程序:

  • 一个用于在Tekla Structures中绘制几何图形
  • 另一个用于检查应用程序与Tekla Structures的连接状态

两个程序均无VS检测到的代码错误,但运行时均抛出嵌套异常:

Inner Exception 1: TypeInitializationException: The type initializer for 'Tekla.Structures.DialogInternal.DelegateProxy' threw an exception.
Inner Exception 2: RemotingException: Remote connection to Tekla Structures channel Tekla.Structures.Dialog-TeklaStructures-Console:2024.0.32149.0 failed
Inner Exception 3: RemotingIOException: Cannot connect to remoting service 'Tekla.Structures.Dialog-TeklaStructures-Console:2024.0.32149.0' because it does not exist.
Inner Exception 4: FileNotFoundException: Unable to find the specified file.

连接检查程序提示:Connection failed!

已通过NuGet安装以下包:

  • Tekla.Common.Geometry
  • Tekla.Structures
  • Tekla.Structures.Datatype
  • Tekla.Structures.Model
  • Tekla.Structures.Catalogs
  • Tekla.Structures.Plugins
  • Tekla.Structures.Dialog
  • Tekla.Structures.Drawing
  • Tekla.Structures.CustomPropertyPlugin
  • Tekla.Application.Library

已在Google及Tekla官网查找解决方案但无果,未找到关于Tekla.Structures.Dialog-TeklaStructures-Console:2024.0.32149.0的相关信息,疑为Tekla Structures连接问题,寻求协助。


排查与解决方案

1. 版本一致性检查

异常中的2024.0.32149.0是Tekla版本号,需确保:

  • 本地安装完全匹配版本的Tekla Structures 2024,包括补丁号一致
  • NuGet包的版本必须与Tekla安装版本严格对应,禁止混合不同版本的Tekla包

2. 权限与运行状态确认

  • 以管理员身份同时启动Tekla Structures和Visual Studio
  • 确保Tekla已打开至少一个模型文件(空模型也可),否则远程通信服务不会启动

3. 验证Tekla远程服务进程

打开任务管理器,检查是否存在以下进程:

  • TeklaStructures.exe
  • Tekla.Structures.Remoting.Server.exe
    若进程缺失,尝试重启Tekla,或通过控制面板修复Tekla安装(「程序和功能」→选择Tekla→「更改」→「修复」)

4. 项目配置调整

  • 在VS项目属性中,将目标平台设置为x64(Tekla仅支持64位环境)
  • 若为独立控制台程序,确保输出类型为「控制台应用(.NET Framework)」;若为插件,设置为「类库(.NET Framework)」并通过Tekla插件管理器加载

5. 精简NuGet依赖

Tekla.Structures.Dialog包用于构建Tekla内部对话框,独立连接/绘图程序无需引用。尝试移除该包及其他非必需包,仅保留核心依赖:

  • Tekla.Common.Geometry
  • Tekla.Structures
  • Tekla.Structures.Model
  • Tekla.Structures.Datatype
    移除后重新编译,避免触发不必要的对话框组件远程连接逻辑

6. 连接代码规范验证

确保连接代码符合Tekla官方规范,示例:

using Tekla.Structures.Model;

var model = new Model();
if (model.GetConnectionStatus())
{
    Console.WriteLine("Connected successfully!");
    // 执行绘图等操作
    model.CommitChanges();
    model.Dispose();
}
else
{
    Console.WriteLine("Connection failed!");
}

注意:运行程序前必须打开Tekla模型,且项目目标框架需与Tekla兼容(Tekla 2024对应.NET Framework 4.8)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:18:16