現在、ASP と VB6.0 を使用した 3 層開発を行っていますが、自分で作成した DLL ファイルをデバッグする適切な方法を見つけるのに苦労しており、効率が非常に悪いです。
私はいくつかの方法を使用しました。
1. IIS でアンインストールを選択し、VB で再コンパイルして元の DLL を上書きします。
2. IIS でデバッグしているサイトを選択し、停止し、コンパイルして上書きしてから起動し、IE でページを更新します。
3. コマンドラインで Regsvr32.exe -u file name を実行し、コンパイル、上書き、更新を実行します。
ただし、Frontpage を使用して ASP ページを作成する場合は問題なく動作しますが、InterDev を使用する場合は問題が発生します。 DLL ファイルがロックされているため上書きできないというエラーが常に報告されます。 InterDev をオフにする (または InterDev で編集中のファイルをすべて閉じる) とうまくいく場合もありますが、常にうまくいくとは限りません。
開発にはより便利な InterDev を使用したいのですが、これより良い方法が見つかりません。
この問題は私を長い間悩ませてきましたが、コンポーネントを開発する人は皆、この点について混乱していると思います
。 -----------------------------------
今日の午後、次の方法を試しました。みんなを笑わせるかどうかはわかりませんが、問題は本当に解決し、午後はずっと気分が良かったです。ただし、詳細は次のとおりです。以下に続きます:
1. .NET をインストールします。もちろん、これは多くのシステム リソースを消費しますが、インストール後は通常のコンピュータの動作が非常に遅くなります。心配な場合は、この方法をやめてもよいでしょう。 (後で、frontpage や interdev でも実装できることが分かりました。笑。文句は言わないでください。言葉に惹かれて .net をインストールしましたが、ほとんど役に立たなかったのですが、使ってみたらすっかり気に入ってしまいました。それと一緒。)
2. DLL を格納するフォルダーを作成します。次に、最も「優れた」部分が出てきます。このフォルダーの下にいくつかの空のサブフォルダーを作成し、01 から始まる値までの名前を付けます。
3. IISマネージャーを起動します
4. VB6 でプロジェクトを開きます
5. これでデバッグしたい場合は、直接コンパイルして、2番目の手順で作成したフォルダーを任意に指定して、01から始めるのが良いと思います。
デバッグに使用している ASP ページを更新します。表示されますか?内容はすでに作成した新しい DLL ファイルです。
上記は起動後の最初のデバッグにすぎません。デバッグ中にたくさんのエラーを発見しました。私はいつも不注意なのでしょうか?ハハ、あなたがこんな風にならないことを祈ります:)
ここで、DLL を変更する必要があります。変更が完了したら、再コンパイルする必要があります。このコンポーネントは既にページ内で呼び出されており、メモリに配置されているため、DLL を上書きすることはできません。 -保護されています。 .net を使用している場合は、IIS マネージャーでサイトを停止する必要がありますが、他の開発環境では、2 番目のステップで設定したものと同じではない可能性があります。そのうちの 1 つ (02 のはずです) を見つけて、ここに新しい DLL を置きます。次に、サイトを起動します (遅すぎるので再起動しないでください。上記の手順を実行する最も簡単な方法は、IIS でサイトを選択し、上隅の █ を押してから ▼ を押すことです) (▼は見つかりませんでした) 、あなたは従うことしかできません ▼ 時針を30度回転して読むのは
どうですか
^_^) ?
問題は解決しましたか?
.net を使用することをお勧めします。これを使用すると、interdev のような参照を作成する必要がなく、拡張子 ASP を使用してページを直接作成し、server.createobject("") メソッドを使用してすべてのオブジェクトを取得するだけで済みます。コード内に追加すると、コンパイルしたばかりの最新の DLL 内のクラスのメソッドと属性が自動的に表示されます。
codeinsight を使いたくない場合は、frontpage も良いツールだと思います。
私のやり方はバカなのでしょうか?
私の現在の仕事はプロジェクトを再作成するのではなく、コードをカプセル化することなので、VB.net や C# は使用しません。vbscript と .net の構文の違いを考慮すると、私は依然としてこの愚かな方法を選択しており、書くのは面倒だと思います。 VBのDLLの方が良いかもしれませんね。