Sdílet prostřednictvím


Postupy: Přístup k prostředkům v satelitních knihovnách DLL

Doplňky Visual Studio jsou ve verzi aplikace Visual Studio 2013 zastaralé.Měli byste upgradovat doplňky na rozšíření VSPackage.Další informace o upgradu viz Nejčastější dotazy: Převádění doplňků na rozšíření VSPackage.

Jakmile jste vytvořili satelitní knihovny DLL a přidali do ní zdroje (ikony, bitmapy, řetězce prostředků a tak dále), tyto prostředky jsou nyní k dispozici vašim doplňkům a jiným projektům automatizace.Níže popsaný postup demonstruje, jak to udělat.

[!POZNÁMKA]

Dialogová okna a příkazy nabídek, které vidíte, se mohou lišit od těch popsaných v nápovědě v závislosti na aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty s aktivním Obecným vývojovým nastavením.Chcete-li změnit nastavení, zvolte NastaveníImportu a Exportu v nabídce Nástroje.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Přístup k prostředkům satelitní knihovny DLL

  1. Otevřete Visual Studio a načtěte existující projekt doplňku nebo vytvořte nový.

  2. Přidat následující příklad kódu, kompilovat a spustit.

Příklad

Následuje obecný algoritmus, který aplikace Visual Studio používá k nalezení satelitní knihovny DLL.Tento kód můžete použít k zajištění, že satelitní knihovna DLL je správně sestavena, na správném místě a má očekávaný název prostředku.

static void Main(string[] args)
{
    string path = @"<some path here>";
    System.Reflection.Assembly asm =    
    System.Reflection.Assembly.LoadFrom(path);
    // For enhanced security, use the LoadFrom overload 
    // System.Reflection.Assembly.LoadFrom(path, securityInfo);
    // where securityInfo is an instance of an Evidence object.
    System.Reflection.Assembly assemblyForResources = 
    asm.GetSatelliteAssembly(System.Threading.
    Thread.CurrentThread.CurrentCulture);
    System.IO.Stream stream =    
    assemblyForResources.GetManifestResourceStream
    (assemblyForResources.GetManifestResourceNames()[0]);
    ResourceReader resReader = new ResourceReader(stream);
    foreach (System.Collections.DictionaryEntry entry in resReader)
    {
        System.Windows.Forms.MessageBox.Show(entry.Key.ToString());
    }
}

Probíhá kompilace kódu

Chcete-li použít tento příklad, vytvořte konzolovou aplikaci Visual C#, přidejte tento kód namísto funkce Main() a nastavte proměnnou cesty na cestu k sestavení doplňku (ne cestu k satelitní knihovně DLL).Při spuštění se zobrazí všechny dostupné prostředky v satelitní knihovně DLL.

Viz také

Úkoly

Návod: Vytváření spravovaných satelitních knihoven DLL