0

COM 可視 .Net アプリケーションを参照する VB6 アプリケーションがあります。.Net アプリケーションは、いくつかのフォームを含む Windows フォーム プロジェクトです。

VB6 アプリケーションは、.Net アプリケーションからメソッドを呼び出して、いくつかのフォームを表示し、データを保存します。

問題は、.Net アプリケーションを展開し、Click-once を使用して自動更新し、VB6 から引き続きアクセスできるようにするにはどうすればよいかということです。(RegAsm.exe) を使用して配置後に .Net アセンブリを登録する必要があるためです。アセンブリは、VB6 アプリケーションの exe ファイルの隣にある必要があります。

ここにVB6のコードスニペット

Dim a As HISIntegration.HIS
Set a = New Rims_HISIntegration.HIS
a.Show

.Net コードは次のとおりです。

[Guid("C79963CC-0284-4848-BAED-F24FC19433F9"), ClassInterface(ClassInterfaceType.AutoDual)]
public class HIS
{
 public bool Show()
    {
        /// ...... some code.
        return (frm.ShowDialog() == DialogResult.OK);
    }
}
4

1 に答える 1

1

ClickOnce を使用して VB6 アプリケーションをデプロイしない限り、「VB6 アプリケーション exe の隣に」.NET アセンブリを取得することはできません。また、ClickOnce アプリへのエントリ ポイントは .NET exe でなければならないため、ClickOnce を使用して VB6 アプリケーションを直接展開することはできません。

VB6 アプリを起動するだけの .NET スタブ アプリケーションを作成し、ClickOnce を使用してすべてのファイル (スタブ、VB6、.NET アセンブリ) を展開できます。それが最もクリーンなソリューションのようです。

于 2012-09-11T19:44:55.140 に答える