.NET 어셈블리를 COM 서버로 사용할 수있게하려면 특성 집합을 추가 한 다음 regasm
을 사용하여 COM 서버로 등록해야합니다.정확히 왜 regasm은 강력한 이름으로 서명하는 것에 대해 경고합니까?
어셈블리가 /codebase
키를 사용하여 실행 강력한 이름 regasm
로 서명되지 않은 경우 어셈블리 가 같은 컴퓨터에 다른 어셈블리 방해 할 수있는 나는 강력한 이름으로 서명해야하지만 것을 말하는 RA0000
경고를 보여줍니다 등록이 성공하고 심지어 잘 작동합니다.
AFAIK의 강력한 이름은 DLL 지옥을 방지하기위한 것입니다. 그러나 COM은 또한 DLL 지옥을 막기위한 것입니다. COM에 노출 된 인터페이스를 변경하면 GUID를 변경하거나 적어도 바이너리 호환성을 유지해야합니다. 따라서 강력한 이름으로 서명하면 아무 것도 쓸모없는 것으로 보이지 않습니다. COM 인터페이스를 깨고 동일한 키 쌍으로 서명하고 본격적인 DLL 지옥을 사용하지 못하게하는 것은 없습니다.
COM이 노출 된 .NET 어셈블리의 경우 강력한 이름으로 서명하는 용도는 무엇입니까?