安装和更新 .NET AutoCAD 插件有哪些方法
现在我有一套 AutoCAD 工具已部署给我们公司的用户。目前,它们是通过我通过 Visual Studio 安装项目维护的 msi 进行部署的。这些文件包括一些自定义命令和 lisp 函数的 .NET dll,以及许多脚本、lisp、.pc3、.ctb 等文件。当前的安装方法如下:
登录时检查机器是否已安装工具或需要更新。如果未安装它们,则会静默运行 msi。如果它们已安装但需要更新,则会进行卸载,然后也以静默方式安装。
当用户关闭 AutoCAD 时,它也会运行相同的方法,只不过它通过系统托盘通知用户在更新完成之前不要重新打开 AutoCAD。
现在看来,登录或更新程序并不总是有效,因为我的用户遇到了由于缺少组件而导致的错误,并且它们似乎是随机发生的。我假设其中一个 msis 在过程中被切断。
考虑到我需要能够即时更新(即告诉用户退出 AutoCAD 并返回接收更新),有哪些替代方法可以更新我的 AutoCAD 插件?
Right now I have a set of tools for AutoCAD that get deployed to users in our company. Currently they are being deployed via an msi that I maintain through a Visual Studio Setup Project. The files include .NET dlls for some of our custom commands and lisp functions as well as many script, lisp, .pc3, .ctb, etc. files. The current method for installation is as such:
At log in time it checks if the machine has the tools installed or needs an update. If they are not installed then it silently runs the msi. If they are installed but need an update then it does an uninstall then install also silently.
When the user closes out of AutoCAD it also runs this same method except that it notifies the user via the system tray not to reopen AutoCAD until the update is complete.
Right now it appears that either the log in or the updater isn't always working because I have users getting errors caused by missing components and they seem to occur randomly. I'm assuming that one of the msis is getting cutoff mid process.
Taking into account that I need to be able to do updates on the fly (i.e. tell the user to exit AutoCAD and get back in to receive the updates) what are some alternative methods to update my AutoCAD plug-in?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们将 .Net dll 放置在共享网络文件夹中。当用户启动 AutoCad 时,我们运行一个 LISP 例程来执行 dll 的“网络加载”。这样,如果我们想要更新,只需重命名旧的 dll,并将新的 dll 放在共享网络位置即可。下次用户启动 AutoCad 时,他们将拥有最新版本。您说您希望即时更新并让用户知道,这是我们不必太担心的事情。如果我们担心,我们只需向 AutoCad 用户组发送一封电子邮件,并告诉他们必须重新启动才能使最新更改生效。
这可能不完全是您正在寻找的,但希望它能让您意识到可能的“不同”方法。
We place our .Net dll's in a shared network folder. When the users launch AutoCad, we run a LISP routine that performs a 'netload' of the dll's. This way, if we want to update, we just rename the old dll's and place the new ones in the shared network location. The next time users launch AutoCad, they will have the latest. You stated that you want to update on the fly and let the users know, which is something that we don't have to worry much about. If we are concerned, we'll just send an email to our AutoCad user group and tell them they must restart for the latest changes to take affect.
This probably isn't exactly what you're looking for, but hopefully it made you aware of a possible 'different' approach.
从表面上看,这表明用户没有在系统托盘中看到通知(可能太小?),并且在安装完成之前启动了 AutoCAD。
简单化和/或严厉的建议...
祝你好运,迈克尔。
编辑/PS:在我发布我的帖子之前没有看到 JSprang 的帖子。总的来说,我认为他是一个优越的策略,与我们对简单的 lisp 库所做的类似。
At face value this suggests users are not seeing the notification in the system tray (maybe too diminutive?) and are firing up AutoCAD before the install is complete.
Simplistic and/or draconian suggestions ...
Good luck, Michael.
Edit/PS: Didn't see JSprang's post until I posted mine. Overall I think his is a superior strategy and similar what we do with simple lisp libraries.