MSDNのおかげで解決策を見つけました。
既定では、アセンブリを再構築すると、新しいバージョン番号が割り当てられます。これは、Visual Studio .NET が新しいプロジェクトの AssemblyVersion 属性を "1.0.*" に設定するためです。その結果、アセンブリが再構築されるたびに、サービス対象のコンポーネントに対して新しいクラス識別子 (CLSID) が生成されます。
注: この動作は、C# プロジェクトと Visual Basic .NET プロジェクトでは若干異なります。C# プロジェクトの場合、アセンブリ バージョンは再構築されるたびにインクリメントされます。Visual Basic .NET プロジェクトの場合、アセンブリ バージョンは、プロジェクトが Visual Studio .NET に読み込まれた後、最初に再構築されるときにインクリメントされます。Visual Studio .NET の同じインスタンス内での後続の再構築では、アセンブリのバージョンがインクリメントされません。
アセンブリのバージョンは、厳密な名前を持たないアセンブリのみの情報であるため、これは問題ではありません。厳密な名前のアセンブリの場合は、手動で維持される静的なバージョン番号を使用する必要があります。この問題およびその他のバージョン管理の問題については、第 5 章「ビルド プロセス」の「アセンブリ バージョンの制御」で詳しく説明します。
サービス コンポーネントが COM+ カタログで最終的に使用される CLSID を制御し、開発者がサービス コンポーネントを再構築するたびに複数のバージョンが表示されるのを回避するには、次のいずれかの方法を使用します。
1.次の Guid 属性を使用して、CLSID を明示的に制御します。
[Guid("2136360E-FEBC-475a-95B4-3DDDD586E52A")]
public interface IFoo
{}
[TransactionAttribute(TransactionOption.Required),
Guid("57F01F20-9C0C-4e63-9588-720D5D537E66")]
public class Foo: ServicedComponent, IFoo
{}
2.サービス コンポーネントのアセンブリの静的アセンブリ バージョン番号を維持し、Visual Studio .NET の既定の "1.0.*" バージョン番号スキームを使用しないでください。アセンブリのバージョン管理の詳細については、第 5 章「ビルド プロセス」の「アセンブリ バージョンの制御」を参照してください。
最初の方法を使用しました。御馳走を働いた。
http://msdn.microsoft.com/en-us/library/ee817675.aspx