1

"Register for COM interop"が true に設定された C# DLL があります。この DLL に新しいインターフェイスを追加し、既存のインターフェイスのいずれかのメソッドの名前を変更するまで、すべてがうまくいきました。

これを行った後、再コンパイルしてレガシーアプリケーションでこれらのインターフェースを使用しようとすると、宣言されていない識別子「インターフェースの名前」のようなエラーが発生します。インターフェイスのどのメソッドも使用できません。ソース管理でこのコードをチェックインしましたが、このコードを他のマシンでコンパイルすると問題なく動作します。したがって、コードに間違いはありません。

これが私がインターフェースを宣言した方法です

[ComVisible(true), Guid("9A8A1B45-190B-4263-826E-6A83E8C13712")]
public interface IArcImporter : IArcObjectsErrorHandler
{
    string ConnectToArcOnline();
    string GetServerName();
}

regasm を使用して DLL を登録しようとしましたが、何も機能していないようです。コンパイル時エラーが発生します。変更を取り消すと、両方のプロジェクトが正常にコンパイルされます。他のマシンでの同じ変更は正常に機能していますが。

4

0 に答える 0