【MSCE UPDATE 17】安装最新的MS 以及SDK以后,我之前编译的程序加载的时候都提示不信任

排查发现目前MS update17版本的BentleyGeom5.dll中的ExtractBoundaryString函数跟update 17 的SDK 中BentleyGeom.lib文件导出的ExtractBoundaryString函数不一致。导致我们如果引用这个文件的话,会出现自己编译的dll不能加载到MS中。如下图所示

 ...

Parents Reply Children
  • 符老师好,我总结了我遇见的mstn不能正常加载dll有两类问题。其中一个是本帖子中说的,是由于17.2的MSTN和17.1sdk出现函数的参数不一致导致的,目前昨天刚出来的17.2的SDK编译的dll是不是能加载,我还在测试中,但是我检查了对应lib文件,确实是改过来了,我估计应该问题不大。另一类是我在另外一个帖子中说的(下方链接),我想用低版本的sdk编译的dll在高版本的MSTN中加载,但是您是不推荐这样做的,可是实际上确实有这个需求的。

    SDK 13编译的程序不要尝试在MS17下加载。

    communities.bentley.com/.../msce-update-17-ms

    Work smart, not just work hard!

  • 我能理解您想让低版本DLL也能在高版本软件中运行的需求。但这确实会带来不可预知的隐患的。由于终端用户可能会使用不同版本的软件,我们作为开发者可以生成针对多个版本的DLL,然后制作一个安装程序,在安装程序中先行判断用户软件的版本,然后将对应版本的DLL复制到用户的机器中。这个方案是最安全的。