写了程序,难免需要更新。所以大家都各自有各自的更新方案。
一般的.net可执行程序可以通过oneclick发布,从而自己更新,在每次用户打开时完成更新,
但是插件的更新有个问题,不能热更新。因为Solidworks在加载完dll之后 无法完全释放,所以无法直接替换。
所以一般的做法是在程序加载完成之后,提示用户有更新,这样就会要求用户必须重启一次Soldiworks.
-----------------------------------------------------------------------------------------------------------------------------------------------------
目前我的做法是创建一个新的Soldiworks插件,用于更新。需要注意的是要保证这个更新程序被solidworks先于功能的DLL加载。
具体我也没有研究它是基于名字还是基于GUID,至少我测试是能用的。
然后就需要在Update.dll中写具体更新的过程了。
需要在实体这个类的时候就去更新,这时solidworks只是加载了这个update.dll
Tool.dll是还没有加载到内存的,所以这个时候是可以替换的。
此时是基于网络或者局域网都可以实现更新。
这样用户就会在每次重新开启Solidworks的时候实现了更新。