recursos en VSPackages administrado
Visual Studio SDK está diseñado para finalizar era de archivos DLL satélite nativos (UI) de la interfaz de usuario crear recursos administrados disponibles para la creación de VSPackage. Puede insertar recursos localizados en archivos DLL satélite nativos de la interfaz de usuario, archivos DLL satélite administrados, o en un VSPackage administrado propio.
Algunos recursos no pueden incrustar en VSPackages. Los tipos administrados siguientes pueden incrustar:
Cadenas
Teclas de carga del paquete (que también son cadenas)
iconos de la ventana de herramientas
Archivos de salida compilados de la tabla de comandos (CTO)
Mapas de bits de CTO
Ayuda de la línea de comandos
Sobre los datos del cuadro de diálogo
Los recursos en un paquete administrado son seleccionado por el identificador de recursos Una excepción es el archivo de CTO, que se debe llamar a CTMENU. El archivo de CTO debe aparecer en la tabla de recursos como byte[]. Todos los demás elementos de recursos están identificados por el tipo.
Puede utilizar el atributo de PackageRegistrationAttribute para indicar a Visual Studio que recursos administrados estén disponibles.
<PackageRegistration(UseManagedResourcesOnly:=True)>
Public NotInheritable Class MyPackage
Inherits Package
[PackageRegistration(UseManagedResourcesOnly = true)]
public sealed class MyPackage : Package
El valor PackageRegistrationAttribute de esta manera indica que Visual Studio debe omitir los archivos DLL satélite no administrada cuando busca los recursos, por ejemplo, utilizando LoadPackageString. Si Visual Studio encuentra a dos o más recursos que tienen el mismo Id. de recurso, utiliza el primer recurso que encuentra.
Ejemplo
el ejemplo siguiente es una representación administrada de un icono de la ventana de herramientas.
<data name="1001"
type="System.Resources.ResXFileRef,System.Windows.Forms">
<value>
MyToolWinIcon.bmp;
System.Drawing.Bitmap,
System.Drawing,
Version=1.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a
</value>
</data>
El ejemplo siguiente muestra cómo insertar la matriz de bytes de CTO, que se debe llamar a CTMENU.
<data name="CTMENU"
type="System.Resources.ResXFileRef,System.Windows.Forms">
<value>
MyPackage.cto;
System.Byte[],
mscorlib,
Version=1.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a
</value>
</data>
Notas de implementación
la carga de los retrasos deVisual Studio de VSPackages siempre que sea posible. Una consecuencia de incrustar un archivo de CTO en un VSPackage es que Visual Studio debe cargar todo tal VSPackages en memoria durante la instalación, que es cuando compila una tabla combinada de comando. Los recursos pueden ser procedente de un VSPackage examinando los metadatos sin ejecutar código en el Paquete. El Paquete no se inicializa en este momento, la pérdida de rendimiento es mínima.
Cuando Visual Studio solicita un recurso de un VSPackage después de configuración, ese paquete es probable cargar e inicializar ya, por lo que la pérdida de rendimiento es mínima.
Vea también
Conceptos
Recursos localizados en aplicaciones MFC: archivos DLL satélite