Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

reference Catia VB.net

Kompletní přehled příspěvků v tématu reference Catia VB.net řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Josef Kočí

Poslat zprávu | Profil
Datum: 25.11. 2019 | Zobrazeno: 5871x
Konfigurace CATIA: V5-6R2019

Text dotazu:
Zdravím forum,
Po čase (4-5 let) modifikuji kod ve VS2017, nyní pro Catia V26 bylo psáno už pro R19.
Kompliace proběhne a dokud nepracuje s referencemi Catia vše funguje.
Potom vyhodí chybu:

Message=Nelze načíst soubor nebo sestavení Interop.ProductStructureTypeLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null nebo jeden z jejich závislých prvků. Toto sestavení je vytvořeno modulem runtime, který je novější než aktuálně zavedený modul runtime, a nelze je zavést.

Kontroloval jsme verzi knihovny a je to tahané z adresáře "C:\Program Files\Dassault Systemes\B26\win_b64\code\bin".
Pravda, že jsem na stroji měl instalovanou i R28 ale momentálně ne.

Prosím o radu, co s tím.
Děkuji
p.

Ing Jan Cinert

Poslat zprávu | Profil
[#6737] | Publikováno: 25.11. 2019 - 09:54
Dobrý den,

já už dlouhou dobu používám při kompilaci pro určité release přímo dll soubory, které vypadnou z VS při kompilaci. Mám pro to vytvořený samostatný "prázdný" projekt, kam vždy jen natahám příslušné COM reference, zkompiluju, a nové dll si nakopíruju do spec. složky. Pak mám tedy jednotlivé sady nejčastěji používaných dll v adresářích R19 ... R29. Rekompilace na novější release je pak o dost rychlejší. Reference pak vybírám ne jako COM, ale již jako .NET.

Důležité je ale předtím (před vytvořením nových dll) vždy zaregistrovat příslušnou verzi, a úplně nejlepší ještě předtím odregistrovat všechny ostatní.

Ve vašem případě bych zkusil znovu zaregistrovat R26.


PS: Používám stále staré VS2008 Expres
Josef Kočí

Poslat zprávu | Profil
[#6738] | Publikováno: 25.11. 2019 - 10:13
Registraci na R26 jsem provedl a nic se nezměnilo. Adresář knihoven pro R26 by jste mi nemohl někde uložit? Než začnu přeinstalovávat systém (win10,už má nárok asi po 3 letech) a další. Požívám 7 knihoven viz. obr.
Nebo pomůže reinstal Catie? Můžu mít jenom R26 stejně jako teď, ale jak jsem psal, přešla přes to R28.
Ještě odbočka, požíváte Win10 nebo raději Win7?
Díky

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#6739] | Publikováno: 25.11. 2019 - 10:39
Je tu více neznámých na nalezení problému - jiné VS, já jsem na stále W7 (díky bohu za ně).

Knihovny jsou připojené v příloze. Připojují se jako NET a jde de facto jen o strukturu objektového modelu, nicméně mi to takhle funguje snad už od R20 ....

Přiložené soubory:
R26_dll.ZIP

Josef Kočí

Poslat zprávu | Profil
[#6740] | Publikováno: 25.11. 2019 - 11:28
Máte u mě flašku. Napíchnul jsme se přímo na ty vaše knihovny a už to frčí. Holt ta instalce R28 s tím nějak zamávala. Nebo je R26 blbě zaregistrovaná (ono to zaklínadlo "CNEXT.exe /regserver" nepotvrdí úspěch), ale VBA makra v R26 normálně fungují. Tak nevím, každopádně
Díky
Ing Jan Cinert

Poslat zprávu | Profil
[#6741] | Publikováno: 25.11. 2019 - 12:32
Jako by se stalo :-)

Já si s tím už kolikrát užil, než jsem ve VS viděl u všech knihoven cestu k tomu správnému release. Někdy se dokonce knihovny mění i v rámci service packu, a to je pak síla.

Ještě horší (a asi největší nevýhoda u .NET) je, že musíte mít pro každý konkrétní release překompilované makro. Teda ne úplně vždy (INF, MECMOD jsou dlouhodobě beze změn), ale většina se mění s každým release. Pak je třeba ještě zajistit, aby se vždy spustila správná verze makra, popř. aby makro zaregistrovalo, že pracuje s nesprávným release a důstojně se ukončilo dřív než vyskočí Runtime error.
Josef Kočí

Poslat zprávu | Profil
[#6742] | Publikováno: 25.11. 2019 - 12:55
Úplně nejhezčí je zasahovat do makra po dlouhém čase. Posun o 7 release a 2 verze OS. :-(
Jakub Dědík

Poslat zprávu | Profil
[#6835] | Publikováno: 26.09. 2020 - 09:21
Dobrý den,
souhlasím s tím, že je lepší používat kompilované knihovy DLL které jsou převzaté z COM referencí.Ostatně ještě další možnost jak si usnadnit práci je vytvořit celé makro jako DLL knihovnu. Při každém novém releasu si vytvořit DLL knihovu makra jen pro něj a v hlavní aplikaci je referencovat. Tím pádem můžete aplikaci používat pořád jednu pro více releasů a ta aplikace se rozhoduje jaké DLL s makren zrovna použije. Je to víc práce, ale z dlouhodobého hlediska si neničíte už práci na staších makrech a není nutné mít pro každý release speciální exe, pak navíc můžete přidat i rozpoznávání releasů a aplikace sama ví jaké dll s makrem použít a uživatel se o to už vůbec nestará.

Ono je všeobecně hodně špatný nápad nechat Catie DLL referencované jako COM. Pokud do toho přidáte ještě instalace 3DExperience tak jse si zadělali na spoustu komplikací :D


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.