

c# - Mysql.Data.dll
Dobrý den,
jak mohu v c# nastavit cestu ke k Mysql.Data.dll? Příklad: na druhém počítači, kde není nainstalovaná tato reference, tak musí být u program.exe také soubor Mysql.Data.dll jinak to hodí error. Jak mohu docílit toho, aby po spuštění programu se Mysql.Data.dll načetl z jiného adresáře (třeba z appdata), kde by se také před spuštěním stáhl... předem děkuji za odpověď.
Co vím, tak dll se přidává.
Ano, ale člověk co nemá tu referenci musí mít dll vedle programu.
Už to nejde upravit.
Nebo je taky možné použít directivu DllImport.
Ale taky může být potíž s přístupem následně.
Protože je nutno ohlídat, aby program měl přístup k cestě, kde načítá dll.
A jak píše Wikan, jaký to má smysl? Praktičtější je "vedle".
Ano, ale určitě jde udělat, aby se to dll četlo třeba z APP data kde by se stáhlo
Udělat to jde, ale jak by se ten program dozvěděl, odkud si to má stáhnout?
Řekl bych programu, kde to má stáhnout
Jak bys mu to řekl?
Tak mě napadá, já bych to asi řešil kontrolou, zda je dll v adresáři.
Pak bych kontroloval, zda je k dispozici internet a ten by si to stahl k sobě "vedle".
Když by to nešlo... messagebox.
V projekte nastav pre tú referenciu Local Copy na true.
Mysli ale na to, že tá knižnica je pod licenciou GPL, takže buď to nedistribuuješ a používaš pre svoje (aj komerčné účely), alebo napíšeš ten program tak, že môže bežať aj s inou databázou a zákazníkom dáš návod, ako si to tam majú nakopírovať.
Edit: Alebo tú knižnicu nainštaluješ do GAC. Buď cez gacutil alebo to spraví inštalačka MySQL connectora.
Ano, ale pořád to neřeší problém, že to dll musí být vedle .exe
Keď ju dáš do GAC, tak nemusí. Ešte môžeš použiť AssemblyResolve, ale zbytočne tak "riešiš" svoj pseudoproblém tým, že si vytváraš skutočný problém.
Jj. Jen dodám gacutil funguje jen pro managed dll.
S unmanaged si neškrtne, zkoušel jsem.
MySQL connector je manažovaná knižnica.
A co to je GAC? :D
http://en.wikipedia.org/wiki/Global_Assembly_Cache