Sytuacja
uruchomić system gromadzenia, który wykonuje wiele buduje dla wielu projektów. Aby uniknąć jednej kompilacji wpływającej na inną, blokujemy użytkownika kompilacji tylko do jego obszaru roboczego. Kompilacje działają jako nieuprzywilejowani użytkownicy, którzy mają tylko możliwość zapisu w obszarze roboczym.Jak można używać C# DLL starszego prostu bez rejestracji (regsvr32)
Wyzwanie
Podczas naszej nowej kompilacji musimy użyć starszego 3rdParty DLL, który udostępnia swój interfejs poprzez COM. Zespół programistów chce zarejestrować kompilację (regsrv32.exe), ale nasz system zabezpieczeń kompilacji blokuje to działanie. Jeśli rozluźnimy reżim, wówczas trzecia strona DLL będzie miała wpływ na inne kompilacje i jeśli mam dwie kompilacje, które potrzebują dwóch różnych wersji, mogę mieć niewłaściwą kompilację kompilacji przeciwko niewłaściwej wersji (bardzo realna możliwość).
Pytanie
Czy są jakieś inne opcje oprócz rejestracji do obsługi starszych DLL, które narażają ich pośrednictwem interfejsu COM?
Dzięki za pomoc
Peter
w .NET COM jest zwykle wykonywane przez Interop w celu rejestracji .DLL w .NET nazywa się Złożenia i można to zrobić na kilka sposobów .. poprzez dodanie referencji za pośrednictwem VS IDE na poziomie projektu, lub pisania kodu, który ładuje i rozładowuje złożenie .. przez plik .config, który zawiera odniesienie do zespołu, a także użycie tego odniesienia w projekcie ... GAC .. – MethodMan
Rejestracja jest * nigdy * konieczna podczas kompilacji. COM używa biblioteki typów do ujawnienia interfejsów. Jeśli zobaczysz, że Regasm.exe jest używany, to robisz to źle. Użyj pliku Tlbexp.exe –