安装和更新 .NET AutoCAD 插件有哪些方法

发布于 2024-10-01 03:40:19 字数 456 浏览 1 评论 0原文

现在我有一套 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

獨角戲 2024-10-08 03:40:19

我们将 .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.

别靠近我心 2024-10-08 03:40:19

现在看来,登录或更新程序并不总是有效,因为我的用户遇到了由于缺少组件而导致的错误,并且这些错误似乎是随机发生的。我假设其中一个 msis 在过程中被切断。

从表面上看,这表明用户没有在系统托盘中看到通知(可能太小?),并且在安装完成之前启动了 AutoCAD。

简单化和/或严厉的建议...

  • 使用更明显的普通对话框,和/或
  • 暂时重命名 AutoCAD 可执行文件,直到安装完成,例如acad.exe.save< /em>、和/或
  • 在安装过程中监视所有进程,如果 AutoCAD 启动,则立即终止所述进程;显示一个对话框,告诉用户它正在关闭以及为什么,和/或
  • 向您的套件添加另一个模块,该模块会在安装完成后检查安装的彻底性,以便您立即了解问题,而不是等待用户偶然发现并稍后报告问题,和/或
  • 维护文件/版本/日期等的主列表并拥有 AutoCAD 的启动套件,也许就像在中的自我诊断功能条目一样简单S::Startup,检查当前配置/设置并将其与主列表进行比较,并相应地报告。

祝你好运,迈克尔。

编辑/PS:在我发布我的帖子之前没有看到 JSprang 的帖子。总的来说,我认为他是一个优越的策略,与我们对简单的 lisp 库所做的类似。

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.

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 ...

  • Use a normal dialog that is more obvious, and/or
  • Temporarily rename the AutoCAD executable until the installation is complete, say to acad.exe.save, and/or
  • During the installation monitor all processes, and if AutoCAD fires up immediately kill said process; display a dialog telling the user it's being shut down and why, and/or
  • Add another module to your suite, one that checks the thoroughness of the install once it's finished so you know about problems immediately, rather than waiting for users to stumble upon, and report problems later, and/or
  • Maintain a master list of files / versions / dates etc. and have AutoCAD's startup suite, perhaps as simple as a self diagnosis function entry in S::Startup, examine the current configuration/setup and compare it to the master list, reporting accordingly.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文