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
Otevřete Visual Studio a načtěte existující projekt doplňku nebo vytvořte nový.
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.