/ / Lokalizácia formulára v hromadnom priestore názvov zrazu generuje výnimky po spustení - .net, visual-c ++

Lokalizácia formulára vo vnorenom priestore názvov zrazu generuje výnimky po spustení - .net, visual-c ++

Mal som formu dobre fungovať, kým som ho lokalizoval - potom to generovalo runtime výnimku a zdroje neboli nájdené.

Priestor názvov je vnorený do jednej úrovne od koreňa.

namespace MyApp
{
namespace NextLevel
{

<MyForm class>

}
}

a MyApp tiež zodpovedajú názvu zhromaždenia.

Odstránenie úrovne NextLevel tak iba MyApp :: MyForm a funguje ako predtým.

Odstránenie lokalizácie a funguje rovnako ako vnorené alebo nie.

Ak má nejaký význam, je to C ++ / CLI a dll zostava.

Snažil som sa pre súbory resx - pridajte .NextLevel medzi šablónami pre názvy zdrojov, ale výsledok je rovnaký.

Moje základné zdroje sú neutrálne (vložené) a potom anglická (ktorá sa stáva satelitnou).

Nejaké nápady?

Ako sa zdroje dostanú na interné menovanie pre resourcemanager, aby ich našli?

Veľmi zaviazaný.

Vďaka.

odpovede:

0 pre odpoveď č. 1

Riešenie - tu je to, čo som urobil.

V bočnom projekte som dostal presne ten istý problém / výsledok pridaním vnorenej úrovne namespace. Pridal som extra úroveň ako ".NesxtLevel" do súborov resx, aby sa názvy zdrojov správne.

Pridal som premenovaný zdrojový zdroj vo vstupnom linker ako vložený spravovaný zdroj.

A to fungovalo - ale cítil som sa - prečo by som tu musel zadávať každý zdrojový súbor manuálne.

Pozrel som sa na zostavu a zistil som, že / out stále odkaz ako / ASSEMBLYRESOURCE: zdroje súboru rovnaké ako basename pre resx súbor plus rootnamespace, nie logické meno s extra priestor názvov v ňom.

Ručne som odstránil staré súbory zdrojov s rovnakým názvom ako rezx súbor.

A to to vyriešilo. Mohol by som odstrániť vložený zdroj som pridal v možnostiach linker rovnako.

Vždy sa objavil aj prestavba projektuodstránila staré súbory zdrojov, ale samozrejme nie. Zdá sa teda, že keď VS vytvára príkazový riadok, ak existuje zdrojový súbor s nadradeným priečinkom + názvom resx-súboru ako logickým názvom - vyberá ten - nie ten, ktorý vytvorili nastavenia kompilátora prostriedkov.

Je to VS 2005, takže to nemožno hovoriť s MS o tom. Len som rád, že je vyriešený.