Cómo: Crear una aplicación de confianza parcial quitando la dependencia de la DLL de la biblioteca CRT

Actualización: noviembre 2007

En este tema se explica la forma de crear una aplicación de Common Language Runtime de confianza parcial mediante Visual C++, quitando la dependencia de msvcm90.dll.

Una aplicación de Visual C++ generada con /clr tiene una dependencia de msvcm90.dll, que forma parte de la biblioteca en tiempo de ejecución de C. Si se desea que la aplicación se utilice en un entorno de confianza parcial, CLR forzará la existencia de algunas reglas de seguridad de acceso a código en el archivo DLL. Por consiguiente, será necesario quitar esta dependencia porque msvcm90.dll contiene código nativo y no se puede imponer en él una directiva de seguridad de acceso a código.

Si la aplicación no utiliza la funcionalidad de la biblioteca en tiempo de ejecución de C y se desea quitar la dependencia de esta biblioteca del código, es necesario utilizar la opción del vinculador /NODEFAULTLIB:msvcmrt.lib y establecer un vínculo con ptrustm.lib o ptrustmd.lib. Estas bibliotecas contienen archivos objeto para la inicialización y desinicialización de una aplicación, clases de excepción utilizadas por el código de inicialización, y código de control de excepciones administradas. El vínculo con una de estas bibliotecas quitará cualquier dependencia de msvcm90.dll.

Nota:

El orden de desinicialización de ensamblados puede diferir para las aplicaciones que utilizan las bibliotecas de tipo ptrust. Para las aplicaciones normales, los ensamblados se suelen descargar en orden inverso al de carga, pero este hecho no se puede garantizar. Para las aplicaciones de confianza parcial, los ensamblados se suelen descargar en el mismo orden en que se cargan, pero tampoco se puede garantizar este hecho.

Para crear una aplicación mixta (/clr) de confianza parcial

  1. Para quitar la dependencia de msvcm90.dll, se debe especificar al vinculador que no incluya esta biblioteca utilizando la opción del vinculador /NODEFAULTLIB:msvcmrt.lib. Para obtener información sobre cómo se realiza esta acción utilizando el entorno de desarrollo de Visual Studio o mediante programación, vea /NODEFAULTLIB (Omitir bibliotecas).

  2. Agregue una de las bibliotecas de tipo ptrustm a las dependencias de entrada del vinculador. Utilice ptrustm.lib si está generando la aplicación en modo de lanzamiento. En modo de depuración, utilice ptrustmd.lib. Para obtener información sobre cómo se realiza esta acción utilizando el entorno de desarrollo de Visual Studio o mediante programación, vea .Archivos .lib como entrada del vinculador.

Vea también

Conceptos

Ensamblados mixtos (nativos y administrados)

Inicialización de ensamblados mixtos

Compatibilidad con bibliotecas para ensamblados mixtos

Referencia

/link (Pasar opciones al vinculador)

Otros recursos

Seguridad del código nativo y del código de .NET Framework