/ / Wersjonowanie biblioteki DLL ActiveX COM z wersją semantyczną, ale identyfikator GUID na MAJOR.MINOR? - dll, com, wersjonowanie, wersjonowanie semantyczne

Wersja biblioteki DLL ActiveX COM z wersją semantyczną, ale identyfikator GUID na MAJOR.MINOR? - dll, com, wersjonowanie, semantyczne wersjonowanie

Krótko mówiąc, jestem opiekunem projektu VisualBasic 6, który produkuje bibliotekę DLL ActiveX COM, która jest używana wewnętrznie przez ~ 50 innych pakietów oprogramowania, które mają wewnętrzne zastosowania w organizacji.

Przez ostatnie kilka lat obserwowaliśmywersja semantyczna „MAJOR.MINOR.PATCH” dla każdej wydanej biblioteki DLL i przypisuje unikalny identyfikator GUID dla każdej wersji. tj. 1.1.1 i 1.1.2 mają oddzielne identyfikatory GUID.

To działało OK, ale powoduje to każde z nichpakiety oprogramowania wymagające nowej wersji - nawet jeśli nie są potrzebne - aby mogły odwoływać się do nowego GUID i ponownie skompilować. To marnuje kilkadziesiąt godzin pracy z powodu wewnętrznych procesów wydawania.

Moje pytanie brzmi: czy byłoby to „złą praktyką”utrzymywać GUID dla każdego wydania MINOR, tak aby 1.1.1, 1.1.2, a nawet 1.1.99 miały ten sam GUID? Czy lepiej byłoby zamiast tego utworzyć identyfikator GUID na każdą wersję główną?

Spowodowałoby to zmianę odniesień tylko po wprowadzeniu nowej wersji głównej lub drugorzędnej, zmniejszając liczbę wymaganych zmian w zależności od pakietów oprogramowania.

Wreszcie, jeśli pomoże to w odpowiedzi, obecnie biblioteki DLL są nazywane jako: MyActiveXDLL_vMAJOR.MINOR.PATCH.dll.

Z GUID na MINOR przełączylibyśmy się na MyActiveXDLL_vMAJOR.MINOR.dll

Odpowiedzi:

0 dla odpowiedzi № 1

Można to zrobić, nie zmieniającGUID (możesz go ustawić w Konstruktorze klas i jest on przechowywany w ukrytych atrybutach, które możesz zobaczyć, jeśli otworzysz plik źródłowy w Notatniku), ale możesz to zrobić tylko wtedy, gdy nie wprowadzasz żadnych zmian.

Złamane zmiany to:

  • Zmiany interfejsu (dodane / zmienione / usunięte / ponownie uporządkowane metody / właściwości)
    • Obejmuje zmiany w dyspozycjach, porządkach parametrów, nazwach parametrów
  • Usunięto interfejsy
  • Metody, które działały wcześniej, ale teraz nie. (Problem tylko wtedy, gdy metoda jest używana. Jeśli nie jest już używana, możesz ją zdeprecjonować i po prostu rzucić błąd, ale nie pozbywaj się jej).

W VB domyślnie będziesz polegał na automatycznie generowanych dyspozycjach, przewodnikach i interfejsach. Możesz ustawić je na określone wartości za pomocą Kreatora klas.

Można ustawić wartości początkowe dla wartości generowanych automatycznie w poprzedniej wersji. Musisz to zrobić ręcznie - będziesz musiał otworzyć bibliotekę typów w TLBVIEW, aby dowiedzieć się, czym one są.