開発マシンにインストール/登録された ocx ファイルに依存するテスト ユーティリティがあります。不要なファイルでマシンを汚染することなく、このツールをテスト マシンで実行したいと考えています。ターゲット マシン ソフトウェア以外は何もインストールしないでください。ネットワーク ドライブ上でツールを実行するか、テスト マシンにコピーされたスタンドアロン ディレクトリからツールを実行するのが理想的です。しかし、ocx をテスト マシンに登録することは論外です。ocx ファイルを exe と同じディレクトリに配置しても機能しません。何があっても、「アプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再インストールすると、問題が解決する可能性があります。」というエラーが表示されます。他に何を試すことができますか?参考までに、Visual Studio 2008 を使用しています。
3 に答える
Windows XP+ について話している場合、Microsoft には Reg-Free COM と呼ばれる機能があります。基本的に、DLL/OCX を呼び出す EXE のマニフェスト ファイルを作成します。このファイルには、実際に HKCR に登録せずに COM 呼び出しを行うために必要なすべての登録情報が含まれています。
COM レイヤーは、Windows レジストリを使用して、GUID を機能を実装するコンポーネント (DLL、OCX、EXE) に変換します。これを回避する別の方法はないと思います。
幸いなことに (ただし、あなたのためではありません)、Microsoft はこれが少し複雑すぎることに気付きました。そのため、.Net コンポーネントはこの登録を必要としません。アプリケーションの横に .Net DLL を配置するだけで、アプリケーションによって「検出可能」になります。
あなたの状況では、仮想マシンを使用してコンポーネントをテストできますか? もしそうなら、あなたはできる
- 仮想マシン イメージを作成します (登録されたコンポーネントはありませんが、Windows から必要なものはすべてあります)。
- 仮想マシン イメージのバックアップ
- 次に、イメージを使用して仮想マシンを起動し、コンポーネントを登録して、アプリケーションをテストします
- テストの後、イメージを捨てて、バックアップを取り直して、新しい環境からやり直すことができます
ここではPSExecが役立つ場合があります。PSExec を使用して別の Winodws マシンでリモート プログラムを実行する社内システム テスト ツールで使用します。これにより、テスト ハーネスとすべての依存関係を (汚染された) 開発者/テスト ハーネス マシンで実行できるようになりますが、テスト対象のコードは非常にクリーンな vmware イメージで実行できます。