(By Fisher QQ:63640357)
用.Net做的二次开发程序,需要引用多个SolidWorks库文件(dll),由于每年SolidWorks都会发布不同版本的库文件,最终程序只能在固定的SolidWorks版本上使用,非常不方便。
1、二次开发SolidWorks程序需要引用的库
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports SolidWorks.Interop.swpublished
Imports SolidWorksTools
每个版本SolidWorks的dll库文件是不一样的,编程时需要将SolidWorks特定版本的dll库复制到程序目录内,再添加引用。
2、 编译生成的程序运行目录
程序运行目录包括主程序(App.exe)、主程序配置文件(App.exe.config)以及添加引用的dll库文件。
如果引用的库文件,与电脑上安装运行的SolidWorks版本不一致(如:程序中引用的是SolidWorks 2012,本机安装的是SolidWorks 2014),运行程序时会提示错误。
尝试将所有的新版dll文件拷贝到运行目录下,希望主程序能够直接调用新版的库文件。结果发现原来这些库文件都用Strong Name签了名的,主程序运行仍然提示出错。
3、 替换dll库文件并配置App.exe.config
复制本机SolidWorks安装版的dll库文件到程序运行目录,替换旧版本的dll库文件。
将库文件SolidWorks 2012版(20.5.0.80)替换为SolidWorks 2015版本(23.0.0.5020)
用记事本打开App.exe.config文件,添加runtime节点,将库文件的name、publicKeyToken填写正确,同时注意使用newVersion替换oldVersion库版本。
要注意不同版本SolidWorks库文件的信息,其中name和publickeytoken是相同的,版本号Version是不同的,小版本也会不一样。
4、 附件(本部分代码可直接复制)
主程序App.exe.config需要添加的runtime节点代码段。
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity name="SolidWorks.Interop.sldworks" publicKeyToken="7c4797c3e4eeac03" culture="neutral" /> <bindingRedirect oldVersion="20.5.0.80" newVersion="23.0.0.5020"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SolidWorks.Interop.swconst" publicKeyToken="19f43e188e4269d8" culture="neutral" /> <bindingRedirect oldVersion="20.5.0.80" newVersion="23.0.0.5020"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SolidWorks.Interop.swpublished" publicKeyToken="89a97bdc5284e6d8" culture="neutral" /> <bindingRedirect oldVersion="20.5.0.80" newVersion="23.0.0.5020"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="solidworkstools" publicKeyToken="bd18593873b4686d" culture="neutral" /> <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> |
各位可以去百度文库下载清晰版
http://wenku.baidu.com/view/aad7ac8690c69ec3d5bb75e8 ;
联系客服