MSDN 덕분에 해결책을 찾았습니다.
기본적으로 어셈블리를 다시 빌드하면 새 버전 번호가 할당됩니다. 이는 Visual Studio .NET이 새 프로젝트에 대해 AssemblyVersion 특성을 "1.0. *"로 설정하기 때문입니다. 따라서 어셈블리를 다시 작성할 때마다 서비스되는 구성 요소에 대해 새 클래스 식별자 (CLSID)가 생성됩니다.
참고이 동작은 C# 및 Visual Basic .NET 프로젝트간에 약간 다릅니다. C# 프로젝트의 경우 어셈블리 버전은 다시 빌드 될 때마다 증가합니다. Visual Basic .NET 프로젝트의 경우 Visual Studio .NET으로로드 된 후 처음으로 프로젝트를 다시 빌드하면 어셈블리 버전이 증가합니다. Visual Studio .NET의 동일한 인스턴스 내에서 이후에 다시 빌드해도 어셈블리 버전이 증가하지 않습니다.
어셈블리 버전은 강력한 이름이없는 어셈블리에 대한 정보이기 때문에 문제가되지 않습니다. 강력한 명명 된 어셈블리의 경우 수동으로 유지 관리되는 정적 버전 번호를 사용해야합니다. 이 버전 및 기타 버전 관리 문제는 5 장 "빌드 프로세스"에서 어셈블리 버전 제어에 자세히 설명되어 있습니다. 명시 적으로
1. : 구성 요소는 COM + 카탈로그에 끝낼 서비스되는 CLSID를 제어하고 개발자가 서비스되는 구성 요소를 재 구축 할 때마다 나타나는 여러 버전을 피하기, 다음 방법 중 하나를 사용하기 위해
. "1.0 *"다음 가이 속성을 사용하여 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 기본값을 사용하지 마십시오을 버전 번호 매기기 체계. 어셈블리 버전 관리에 대한 자세한 내용은 5 장, "빌드 프로세스"의 어셈블리 버전 제어를 참조하십시오.
첫 번째 방법을 사용했습니다. 치료를 했어.
http://msdn.microsoft.com/en-us/library/ee817675.aspx
당신은 당신의 vb.net 코드에서 클래스에'Guid' 속성을 지정 했습니까? – Medinoc
예, 특정 GUID 집합이 있습니다. 그것 없이는 어떻게 될까? @Medinoc –
설정되어있는 경우 어떻게 변경 될지 이해하지 못합니다. 일부 GUID가 설치 프로그램 패키지의 버전으로 변경된다는 것을 이해합니다. (WiX를 사용한 적이 없으며 VS2005 배포 프로젝트를 사용했고 제품 코드가 버전으로 변경되었습니다) 설정 한 경우 CoClass의 CLSID가 자동으로 변경되는 것을 볼 수 없습니다. 돌에. * ... 아니면 실제 CLSID 대신 질문에 다른 종류의 GUID를 의미하셨습니까? – Medinoc