Dziwny problem z zasobami c++/cli

0

Cześć
Mam do Was pytanko

pisze sobie programik i wszystko było ok aż tu pewnego dnia uruchamiam program i pojawia się komunikat

A first chance exception of type 'System.Resources.MissingManifestResourceException' occurred in mscorlib.dll

Additional information: Nie można odnaleźć żadnych zasobów odpowiednich dla określonej kultury lub kultury neutralnej. Upewnij się, że element „PCI.fmPrint.resources” został poprawnie osadzony w zestawie „Validators” lub z nim połączony w czasie kompilacji lub że wszystkie zestawy satelickie są możliwe do załadowania i całkowicie podpisane.

w momencie wywołania formatki z mojej dll wykłada się na poleceniu
this->btnView->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"btnView.Image")));

twierdząc że nie ma takiego zasobu a jak sprawdza to taki zasób moim zdaniem jest.
Pisze w VS 2008 Express C++/CLI.
Najlepsze jest to że jak stworze sobie inny nowy projekt w którym jest nowy exe i nowa inna dll w której jest formatka to działa bez problemów.
Przekopałem różne fora w necie i nic nie pomaga.
Może Wam trafił się podobny przypadek i wiecie jak temu zaradzić dzięki za odp.

W połowie pisanie przesiadłem się z VS2005 na VS2008 ale po przesiadce działało bez problemów aż tu pewnego dnia ...

0

Z opisu wyglada, ze masz zasob dla jednej kultury a starasz sie znalezc dla innej, dla ktorej nie jest zdefiniowany. Np. masz je w polskim, a system przelaczyl sie na angielski, do tego nie zdefiniowales domyslnej. Czy masz podpisane dllki? Reszta opisu sugeruje, ze tutaj moze byc problem.

0

Dzięki za odpowiedź

Język jest ustawiony na default zarówno w tym projekcie w którym wylatuje błąd jak i w tym nowym testowym. Jak zmieniłem np. na polski to wygenerował się nowy katalog pl-PL w którym jest moja dll, ale po kropce w nazwie ma .resources.dll skąd to się wzięło i co jest dziwnego?

Co masz na myśli pisząc że dll jest podpisana.

Już mnie trochę ukierunkowałeś ale błąd nie jest naprawiony dalej, dlatego teraz nie napiszę jak go rozwiązać

0

To co sie wygenerowalo to tzw. satellite assembly, czyli zasoby aplikacji w osobnej dllce. Jesli nie istnieje katalog i dllka w nim wtedy uzywane sa zasoby domyslne. Mowiac o podpisie mam na mysli silny podpis (strong-name signing). Poczytaj o obu tematach, moze na cos Cie naprowadzi.

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