2009-07-09 12 views
6

Estoy creando una clase de biblioteca en C# utilizando microsoft provisto Dll.¿Cómo enlazar estáticamente las bibliotecas para una C ClassLibrary?

Ahora quiero agregar estáticamente las bibliotecas proporcionadas por Microsoft a My Dll. ¿Cómo puedo hacer esto? Acabo de agregar una referencia a los Dlls proporcionados por Microsoft y la creación de My Dll? ¿Está bien o no?

si Microsoft proporcionó dll no está disponible en otra máquina, entonces mi Dll puede fallar, ¿necesito agregar las bibliotecas estáticamente?

¿Cómo puedo hacer esto?

+0

¿Qué está tratando de lograr con esto? –

Respuesta

6

No existe una vinculación estática con otro ensamblaje en .NET. Hay algunos productos de terceros como .NET linker que combinan ensamblajes en uno pero no son compatibles.

Si tiene la licencia de redistribución para esa biblioteca, puede enviar una copia junto con su ensamblaje. En Visual Studio puede hacer que esto suceda estableciendo "Copiar local" en "Verdadero" en la ventana de propiedades para esa referencia de ensamblado.

3

Si el dll no está disponible en el momento de la ejecución; sí, fallará Sin embargo:

  • muchos archivos DLL de Microsoft están preinstaladas en .NET (advertencia: "perfil de cliente")
  • muchos de los archivos DLL de Microsoft son Redistribuibles; para que pueda incluirlos en su paquete

No hay un enlazador en el marco principal, aunque ILMerge puede ser útil.

0

No es muy claro lo que quiere lograr, pero parece que está preocupado de que su lib clase trabajará en alguna otra máquina o no. El caso es que .Net Framework es una redistribución gratuita que debe instalarse si no está presente en la máquina de destino. Con .Net Framework ya instalado en una máquina, no debería haber ningún problema como tal.

La vinculación estática como tal no tiene sentido en .Net aparte de agregar una referencia de ensamblaje a su proyecto. Espero que ayuda

+0

Cuando se vincula una DLL estáticamente en C++ que combina el exe y la DLL en un archivo que hace que sea más fácil de distribuir y capaz de funcionar en entornos limitados. –

Cuestiones relacionadas