1

現在、社内のユーザーに展開するAutoCAD用のツールセットがあります。現在、これらはVisual StudioSetupProjectを通じて維持しているmsiを介して展開されています。これらのファイルには、一部のカスタムコマンドとlisp関数の.NET dll、および多くのスクリプト、lisp、.pc3、.ctbなどのファイルが含まれています。現在のインストール方法は次のとおりです。

ログイン時に、マシンにツールがインストールされているかどうか、または更新が必要かどうかを確認します。それらがインストールされていない場合は、サイレントにmsiを実行します。それらがインストールされているが更新が必要な場合は、アンインストールを実行してから、サイレントにインストールします。

ユーザーがAutoCADを閉じると、これと同じ方法が実行されますが、更新が完了するまでAutoCADを再度開かないようにシステムトレイを介してユーザーに通知されます。

現在、コンポーネントの欠落が原因でユーザーにエラーが発生し、ランダムに発生しているように見えるため、ログインまたはアップデーターのいずれかが常に機能しているとは限らないようです。私は、msisの1つがプロセスの途中でカットオフを取得していると想定しています。

その場で更新を実行できるようにする必要があることを考慮に入れて(つまり、ユーザーにAutoCADを終了し、更新を受信するために戻るように指示します)、AutoCADプラグインを更新するための代替方法は何ですか?

4

2 に答える 2

3

.Net dll を共有ネットワーク フォルダーに配置します。ユーザーが AutoCad を起動すると、DLL の「ネットロード」を実行する LISP ルーチンが実行されます。このように、更新する場合は、古い dll の名前を変更し、新しいものを共有ネットワークの場所に配置するだけです。次回 AutoCad を起動すると、最新の状態になります。オンザフライで更新してユーザーに知らせたいとおっしゃいましたが、これについてはあまり心配する必要はありません。懸念がある場合は、AutoCad ユーザー グループに電子メールを送信し、最新の変更を有効にするには再起動する必要があることを伝えます。

これはおそらくあなたが探しているものではありませんが、「異なる」アプローチの可能性に気付くことができれば幸いです。

于 2010-11-05T14:05:09.947 に答える
1

現在、ログインまたはアップデータのいずれかが常に機能しているとは限らないようです。これは、コンポーネントの欠落が原因でエラーが発生し、それらがランダムに発生しているように見えるためです。私は、msis の 1 つがプロセスの途中で切断されていると想定しています。

額面どおり、これは、ユーザーがシステム トレイに通知を表示せず (小さすぎるのではないでしょうか?)、インストールが完了する前に AutoCAD を起動していることを示しています。

単純化および/または厳格な提案...

  • より明白な通常のダイアログを使用する、および/または
  • インストールが完了するまで、一時的に AutoCAD 実行可能ファイルの名前を変更します ( acad.exe.saveなど)
  • インストール中にすべてのプロセスを監視し、AutoCAD が起動した場合は、そのプロセスをすぐに強制終了します。シャットダウン中であることとその理由をユーザーに知らせるダイアログを表示する、および/または
  • スイートに別のモジュールを追加します。これは、インストールが完了したらインストールの完全性をチェックして、ユーザーがつまずいて後で問題を報告するのを待つのではなく、すぐに問題を知ることができるモジュールです。および/または
  • ファイル/バージョン/日付などのマスター リストを維持し、AutoCAD のスタートアップ スイート (おそらく S::Startup の自己診断機能のエントリと同じくらい簡単) を用意し、現在の構成/セットアップを調べてマスター リストと比較し、それに応じて報告します。

がんばれ、マイケル。

編集/PS: 私が投稿するまで、JSprang の投稿は表示されませんでした。全体として、彼は優れた戦略であり、単純な Lisp ライブラリで行っていることと似ていると思います。

于 2010-11-05T14:16:28.957 に答える