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

VS2019跨机器同步项目后无法加载注册SolidWorks.Interop程序集问题

问题快速修复方案
  • 首先清理本地项目缓存:删除项目根目录下的.vs隐藏文件夹、bin和obj文件夹,再重新生成解决方案,排除旧编译缓存导致的版本残留问题。
  • 调整SolidWorks引用属性:选中项目中所有SolidWorks相关的引用,右键打开属性面板,将特定版本设置为False,复制本地设置为True,强制编译时跳过固定版本号校验,运行时优先加载本地存在的互操作程序集。
  • 手动注册本地COM组件:以管理员身份打开命令提示符,进入办公设备的SolidWorks安装根目录,执行命令regsvr32 sldworks.exe重新注册COM组件,再重新添加本地SolidWorks的COM引用即可。
  • 如果以上操作都无效,可以直接在办公设备本地搜索到对应版本的SolidWorks.Interop.swpublished.dll,拷贝到项目专门的依赖库目录,再把项目引用路径指向该本地dll即可。
跨设备兼容开发方案
  • 统一依赖管理:不要直接引用不同设备本地安装的SolidWorks COM库,将所有用到的SolidWorks互操作dll统一存放到项目根目录下的3rdLibs文件夹,随代码一起提交到版本仓库,所有设备的项目引用都统一指向该目录下的dll,同时保持所有引用的特定版本属性为False。
  • 添加csproj条件引用配置:在项目文件中添加条件判断逻辑,自动匹配不同设备上的SolidWorks安装路径加载对应版本的引用,示例配置如下:
<Choose>
  <!-- 适配高版本SolidWorks设备 -->
  <When Condition="Exists('C:\Program Files\SOLIDWORKS 2022\api\redist\')">
    <Reference Include="SolidWorks.Interop.swpublished">
      <HintPath>C:\Program Files\SOLIDWORKS 2022\api\redist\SolidWorks.Interop.swpublished.dll</HintPath>
      <SpecificVersion>False</SpecificVersion>
      <Private>True</Private>
    </Reference>
  </When>
  <!-- 适配低版本SolidWorks设备 -->
  <When Condition="Exists('C:\Program Files\SOLIDWORKS 2020\api\redist\')">
    <Reference Include="SolidWorks.Interop.swpublished">
      <HintPath>C:\Program Files\SOLIDWORKS 2020\api\redist\SolidWorks.Interop.swpublished.dll</HintPath>
      <SpecificVersion>False</SpecificVersion>
      <Private>True</Private>
    </Reference>
  </When>
</Choose>
  • API兼容约束:开发时仅调用多版本SolidWorks通用的公共API,避免使用高版本新增的专属API,防止低版本设备运行时出现接口不存在的报错。
  • 动态加载适配:如果需要实现完全的版本无关适配,可以用反射动态加载对应版本的互操作程序集,不需要在项目中硬编码固定版本的引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:09:02