Připojení vlastní obecné knihovny v referencích   zodpovězená otázka

Visual Studio, Knihovny

Dobrý den,

chtěl bych požádat o radu, jak nastavit ve VS referenci na vlastní knihovnu ze samostatného projektu, tak abych mohl mít jednu knihovnu někde na disku a z různých vlastních aplikací ji mohl volat. Asi je to banální úkon, ale nikde jsem to nedohledal. Děkuji i za odkaz, kde se to řeší. Hranec.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Pokusím se možná lépe popsat problém.

Mám vytvořenou knihovnu *.dll, kterou používám ve vícero projektech. Bohužel neumím správně natavit reference ve VisualStudiu (Microsoft Visual Studio Community 2015). Potřebuji nastavit referenci na svou knihovnu *.dll tak, abych ji nemusel distribuovat s každým novým projektem. Uložit ji někam do systému a odkazovat se na ni. Při opravě knihovny *.dll ji musím aktualizovat v každém projektu, kde se vyskytuje, což je nešikovné. Takhle by mi stačilo aktualizovat jednu. Moc děkuji, Hranec.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Pokud opravdu chcete používat tu stejnou knihovnu (dll) ve více aplikacích, tak k tomu v .NET slouží GAC (viz.např. https://docs.microsoft.com/en-us/dotnet/... ), kde může být Assembly nahraná a .NET aplikace jí z tohoto umístění používá. Assembly musí být silně podepsaná (strong name).

Nicméně tento přístup se v dnešní době již spíše opouští a dll se nechávají u každé aplikace zvlášť. Předchází se tak problémům s nekompatibilitou různých verzí dll apod. Asi nejlepší postup pro údržbu knihoven je používání NuGet balíčku, kdy si Assembly knihovnu vytvoříte jako vlatní NuGet balíček a v projektech místo jen reference na dll Assembly použijete instalaci tohoto balíčku. Tím můžete v projektech pak velmi snadno aktualizovat na jakoukoliv novou verzi balíčku (pomoci update). K tomu se hodí rozchodit si vlastní firemní (nebo jen lokální) NuGet server pro vlastní NuGet feed, do kterého vlastní balíčky ukládáte. Více např. zde http://nugetserver.net/ a https://docs.microsoft.com/en-us/nuget/h....

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Moc děkuji,

myslel jsem, že jde o rutinní záležitost spojenou s jedním checkboxem v nastavení VS. Je pravda, že problém s kompatibilitou by časem určitě nastal... Já si těch pár projektů na své hobby úrovni určitě pohlídám, jen se mi to systémové řešení líbilo. Podívám se na oboje Vaše navrhované řešení a uvidím. Ještě jednou děkuji a přeji mnoho zdaru, Hranec.

(Jinak pro případné zájemce... v tom prvním odkazu je chyba v adrese. Na konci je uzavírací závorka "https://docs.mic...ins/gac)". Tu je potřeba odmazat, aby prohlížeč zobrazil stránku "https://docs.microsoft.com/en-us/dotnet/...". - Opraveno)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Pro projekt na hobby úrovni mám případný tip přibalit knihovnu do resources.

Něco na tento způsob:

https://www.codeproject.com/Articles/528...

Není to tak elegantní, jak bylo zmíněno výše, neboť při změně knihovny je nutno ji nahradit v resources a znovu zkompilovat, ale pro něco jednoduššího by to třebas mohlo posloužit.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Děkuji za tip, Hranec.

nahlásit spamnahlásit spam -1 / 1 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