Създавам .NET сборка с COM интерфейс. В идеалния случай бих искал ключовете на системния регистър да са отделени от сборката, така че изпълнението на издание трябва само да пусне .dll на споделено устройство (вместо да се налага да изтласквам MSI всеки път)
Създадох различни класове, които наследиха от основния клас, за да получа различни GUID за всяка среда.
Въпреки това, когато тествам това, първата заредена версия (напр. разработка) завършва с обслужване на повиквания за другите среди (напр. тест) по-късно. Това обикновено не би било проблем, но когато се използва, този компонент се извиква от цял ден работещ GUI изпълним файл. Възможно е хората да работят в различни среди през целия ден.
Всеки интерфейс има независим набор от кодова база в регистъра (без GAC) и мониторът на процеса показва, че и двата модула са заредени, но се използва само първият. Предполагам, че това е така, защото .NET вижда същото име на клас/сглобка и използва повторно първото заредено.
Как мога да изолирам сглобките в тази ситуация?