Oto, jak się przed tym bronimy w mojej firmie. (Twój przebieg będzie się zmieniać!)
każda niezgodność systemu (lub w inny sposób-GAC non) referencje pochodzą z naszego serwera dev, który każdy deweloper odwzorowanym na ich W: napędu. Mamy wspólny katalog DLL, z podkatalogami według klienta (lub dostawcy), a także, odpowiednio, dalszych podkatalogów. Żadne biblioteki DLL nie są przechowywane kiedykolwiek w kontroli kodu źródłowego, z wyjątkiem licencji.dll, zgodnie z potrzebami Infragistics sporadycznie.
Dla bibliotek dostarczonego przez producenta (EntLib, Infragistics, itd.), Jak polityka możemy odwoływać się od W: napęd. Kropka. Nikt nie jest upoważniony do odniesienia się nigdzie indziej. Koduje to podpowiedź w plikach projektu do wspólnej ścieżki.
uzyskać w domu biblioteki (klienta i projektów wewnętrznych), nasz ciągły proces integracji wyprowadza dll do odpowiedniego oddziału katalogu - znowu, gdzie wszystkie nasze referencje pochodzą z.
ten sposób spowolnić naszą lokalną czasu kompilacji (dla lokalnej debugowania), jak VS będzie automatycznie odświeżać je na serwer za każdym razem. To irytacja (czasami projekt może zająć 5 lub 6 minut, aby budować lokalnie), ale jest to zło konieczne do pracy z ludźmi używającymi różnych odniesień. Zaletą jest to, że gdy tylko ktoś sprawdzi kod dla jednego z tych odniesień, serwer CI uruchomi kompilację i każdy szybko ją zrobi.
Podstępem jest stabilny, powtarzalny proces kompilacji i ciągły serwer integracyjny. Używamy CruiseControl.NET, zintegrowanego z kompilacjami NAnt, ale wstaw tutaj swój ulubiony serwer CI i narzędzie do budowania.
Do tej pory w wyniku tego procesu nie wystąpiły żadne problemy, z wyjątkiem sytuacji, gdy serwer budowania uruchomi się, podczas gdy nasz system kontroli źródła (znany również jako Demon Spawn, zobacz tak wiele moich ostatnich uwag) wykonuje odprawa wielu plików. (Ponieważ Demon Spawn nie obsługuje transakcji kontrolnych). Jest to jednak bardzo rzadkie zdarzenie - być może raz na 5 lub 6 tygodni. Natychmiast po tym następuje przebudowa sił.
Tylko kilka myśli ... Ta technika powinna powstrzymywać ludzi przed zepsuciem kontroli nad źródłami - a jako dodatkowy bonus, zmniejszyć rozmiar kontroli źródła, ponieważ nie będziesz sprawdzać w bibliotekach DLL, po prostu dll.refresh akta.
Tak, to jest do bani, właśnie dlatego nigdy nie wkładałem niczego do GAC. –
Wygląda na to, że problem jest związany z twoimi programistami, może mógłbyś zrobić coś, aby nauczyć ich, by nie popełnili tego błędu - powiedz za każdym razem, gdy ktoś popełni ten błąd, płaci 5 $ - to powinno pomóc im zapamiętać :) –
Głównym problemem było z zestawami GAC, takimi jak kontrolki DevExpress. Ostatecznie przypisaliśmy 1 osobę, która jest odpowiedzialna za aktualizowanie folderu lib za pomocą złożeń innych firm i nikt nie mógł ich instalować. Rodzaj bólu dla tych kontroli, ale zadziałało. – NotMe