reference namapovani dll   otázka

VB.NET

Predpoklad: Na kazdem pC je knihovna zaregistrovana instalatorem aplikace (CATIA) pro ktere prográmek tvořím.

Nechci pridavat znovu knihovnu a linkovat z EXE ani vkladat primo do kompilace. Je to obsahla knihovna ze ktere vyuziju 2 objekty.

Dá se to řešit odkazem na existujici DLL?

dik

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Koukám, že se nikdo nemá k odpovědi, tak se Vám pokusím aspoň trochu pomoci já svými skromnými znalostmi. Kdybych měl řešit Váše zadání, vytvářel bych celý porgrámek (za předpokladu, že ta zdrobnělina je opodstatněná) pomocí Reflection. Sice nevím jak bych to udělal, ale vím, že teoreticky by to šlo.

Nezlobte se, že nemůžu být konkrétnější, ale mé skromné znalosti do těchto výšin nesahají :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, když fakt netušíš, tak radši neodpovídej. Reflection funguje pouze pokud je knihovna .NET assembly a navíc je to šíleně pomalé.

U většiny knihoven by mělo stačit, aby byly ve složce Windows\system32 a pak nemusí být v adresáři aplikace. Takže zkuste normálně přidat knihovnu do projektu a pak distribuujte jen EXE soubor, knihovnu už ne. Mělo by to jít spustit, protože knihovny se nejdřív standardně hledají ve složce aplikace, a když se nenajdou, tak v systémovém adresáři.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Neslavim uspech, bez publ. knihovny nastane vyjimka behu aplikace.

Pro upresneni, pridavana knihovna je typová (*.tlb) a po přidání do references předřadí do svého názvu předponu "Interop.". Její název pak neodpovídá žádné v syst. reg. knihovně.

S ohledem na množství stanic (vše OS Win Xp) bych nerad instaloval, ale přesto dotaz: Instalátor aplikace přidané knihovny zaregistruje do OS? Doporučujete instalátor ve 100% nebo ne?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je to Interop, tak se musí ta knihovna přiložit k aplikaci. Zkuste vzít celou složku, co Visual Studio vybuilduje, a bez instalace ji spustit na nějakém cílovém počítači. Mělo by to chodit. Pokud ne, budete potřebovat instalátor.

Samozřejmě musí být nainstalován .NET Framework, tomu se nevyhnete.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

TLB není knihovna, ale pouze soubor s informacemi o tom, jaké vlastnosti a metody poskytuje příslušné COM rozhraní (něco jako Metadata v .NET aplikaci). Takže v rámci distribuce aplikace budete muset redistribuovat i příslušnou DLL knihovnu, která COM rozhraní obsahuje (a to může být v rozporu s licenčními podmínkami dané aplikace) a navíc toto COM rozhraní bude nutné zaregistrovat pomocí nástroje RegSvr32. Takže instalátor je na toto jako dělaný, Inno Setup tu registraci podporuje nativně bez použití RegSvr32.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback