如何:访问附属 DLL 中的资源
Visual Studio 2013 中已弃用 Visual Studio 的外接程序。 你应该升级外接程序到 VS 的扩展包。 有关升级的更多信息,请参见 。常见问题:将外接程序转换为 VSPackage 扩展
一旦创建了附属 DLL 并向其添加资源(图标、位图、资源字符串,等等),您的外接程序和其他自动化项目将立即可以使用这些资源了。 下面的过程将阐释如何执行此操作。
备注
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。这些过程是在“常规开发设置”处于活动状态时开发的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关详细信息,请参阅在 Visual Studio 中自定义开发设置。
访问附属 DLL 资源
打开 Visual Studio 并加载现有的外接程序项目或创建新的外接程序项目。
添加下面的代码示例,对其进行编译并运行它。
示例
以下是 Visual Studio 用于查找附属 DLL 的常规算法。 可以使用此代码确定确实生成了附属 DLL,并且它具有您期望的资源名称。
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());
}
}
编译代码
若要使用此示例,请创建一个 Visual C# 控制台应用程序,添加此段代码以代替 Main() 函数,并将路径变量设置为外接程序程序集的路径(而不是附属 DLL 的路径)。 运行时,您将看到附属 DLL 中的所有可用资源。