Windows 2003 Server または 2000 を使用して、別のシステムで使用する COM+ アプリケーション プロキシを生成すると、エクスポート中に作成される MSI パッケージ内に .NET Enterprise Services コンポーネントが含まれます。.NET コンポーネントも GAC に登録され、アプリケーション プロキシのインストール中に regsvcs が自動的に実行されます。
ただし、Windows Server 2008 にはアセンブリが含まれていないことがわかりました。.tlb は含まれますが、.dll は含まれず、GAC にもインストールされません。もちろん、アプリケーションがアセンブリを見つけることができないと、すべてが失敗します。
2000 年から 2003 年までの動作が確実に機能するようにするために何をすべきか知っている人はいますか?
更新.NET アセンブリだけでプロキシを生成でき、正常に動作しますが、他のアセンブリまたはレガシー VB6 COM+ dll を同じパッケージに追加しようとすると、別のプロセッサ用にビルドされたと表示されます。
更新任意の CPU モード (すべてのプロジェクトが設定されている) でビルドする場合、アセンブリをコンポーネント サービス アプリケーションにドロップして登録すると、既存の 64 ビット アプリケーションの場合は 64 ビットが使用されることを理解しています。ただし、これは 32 ビット アプリケーションです。COM+ アプリケーションに登録されている 32 ビットの VB6 dll があります。そのため、32 ビットのレジストリなどを使用する必要があり、アプリケーションが 32 ビットになります。そのため、後で .NET Any CPU アセンブリを追加すると、それは 32 ビットである必要があります ... ただし、アプリケーションをエクスポートすると、.NET アセンブリは、作成された .MSI に追加されません。
更新32 ビットの ServicedComponents をエクスポートできないというバグについて説明しているhttp://support.microsoft.com/kb/924729を見つけました ... 修正プログラムがありますが、これは Windows Server 2003 用です。問題を絞り込みました正しくエクスポートされていないのは 32 ビットの ServicedComponents だけです。