Wątek przeniesiony 2022-12-10 18:41 z Edukacja przez Ktos.

Zbudowanie biblioteki .dll

0

Witam, zrobiłem sobie swoją bibliotekę dll w C# (Visual Stufio 2019 2019), którą używam w innym projekcie. Co jakiś czas dodaje nowe klasy do mojej biblioteki DLL, po skończeniu pracy kompiluje swoją bibliotekę i powinno być ok.
I teraz problem, gdy dodaje do innego projektu swoją DLL - kę to nie widzę nowych dodanych klas, tylko stare. Wcześniej nie było z tym problemu teraz mam, co mam kliknąć w Visual Studio aby wszystko dobrze się skompilowało i gdzie szukać mam poprawnie skompilowanej swojej biblioteki dll.
Proszę o pomoc, bo dużo czasu nad tym zmarnowałem.
Pozdrawiam Tomasz J

0

Clean/rebuild ?

0

jeśli problem jest w cachowaniu (nie jestem mistrzem świata, ale wiem ze jest), to może pomóc inkrementowanie numeru wersji - ręczne (możesz od ręki spróbować czy leczy) lub automatyczne (trzeba sobie wtedy project urobić)

0

Szlak mnie trafia. Do istniejących klas dodaje nowe metody publiczne i są one widoczne, ale nowej klasy po kompilacji nie widać :/.

1

Napisz jak tą dl-kę w ogóle podpinasz. Możesz ten swój projekt biblioteki po prostu dołączyć do solucji drugiego projektu.

0

Link do filmu YT co i jak robię: link .

1

A jak sprawdzisz sobie w konsoli za pomocą objdump -T twojabibliotek.dll to znajdujesz na tej liście twoje nowe funkcje?

Ogólnie są 3 sposoby ładowania bibliotek, gdzie tylko dwie są do dynamicznych .dll/.so, ostatnia to statyczna .a

Niejawne gdzie ci za ciebie ładuje program podczas startu i jawnie gdzie ręcznie robisz loadlibrary

Nie wiem czy to też jakiś problem typowo IDE nie jest, w innych językach biblioteki są pobierane automatycznie z githuba np. CMake sam pobiera libkę o danej wersji z githuba.

5

A nie możesz dać ref. do tamtego projektu?

albo wystawić tę dllkę jako nuget?

a próbowałeś jak w/w pisali (chociaż nie bezpośrednio) - usunąć foldery bin i obj po wrzucniu nowej wersji dllki?


A może po prostu uczyń tę klasę publiczną :)

screenshot-20221210180546.png

0

Może kompilujesz z debug, a używasz release

0
1a2b3c4d5e napisał(a):

A nie możesz dać ref. do tamtego projektu?

albo wystawić tę dllkę jako nuget?

a próbowałeś jak w/w pisali (chociaż nie bezpośrednio) - usunąć foldery bin i obj po wrzucniu nowej wersji dllki?


A może po prostu uczyń tę klasę publiczną :)

screenshot-20221210180546.png

"public class Dodatkowe" - pomogło.
Dzięki wszystkim za pomoc, tyle czasu zmarnowane z tym.
Pozdrawiam wszystkich.

0

@tomasz79:

Wiesz, co o tym myślimy ?

3

Wiem, niedzielny programista. Bo to prawda siedzę nad kodem tylko w weekendy od niedawna w c# :), mam ponad 2 lata przerwy jakiegokolwiek kodowania (wcześniej coś tm klepałem dla siebie w Java). Dlatego na początku ten post dałem w dziale "Edukacja" nie pchałem się na salony.
Mimo wszytko dzięki.

2

@tomasz79:

Każdy się może potknąć, ale zamieszczanie kodu w pięćset siedemdziesiąt drugim odcinku brazylijskiego serialu to drugie ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1