2010-06-02 14 views
8

Para empezar, no sé mucho acerca de la implementación. Espero que mi pregunta tenga sentido.¿Cómo implementar una aplicación C# al tiempo que se incluyen archivos DLL de terceros?

Necesito instalar/implementar una aplicación C# en una cantidad de escritorios. Necesita un archivo DLL de terceros: una biblioteca C++ ("lpsolve55.dll", para aquellos interesados, es un solucionador MIP/LP gratuito, consulte lpsolve.sourceforge.net/5.5/). Yo lo uso en mi código de la siguiente manera:

[DllImport("lpsolve55.dll", SetLastError = true)] 
    public static extern bool add_column(int lp, double[] column); 

Para las pruebas, he copiado manualmente el archivo .dll que a project\bin\release, y funciona bien.

Mi pregunta: Necesitaré un instalador para la aplicación, que se encargará de que el .dll se instale también. Estoy considerando la implementación de ClickOnce porque estoy usando Visual C# 2008 Express Edition, pero cualquier solución no demasiado costosa lo hará.

¿Qué le aconsejarías?

Respuesta

1

Si ClickOnce tiene la capacidad de llevar ese archivo DLL con él y copiarlo en la carpeta de la aplicación, lo usaría. Sería aún mejor si puede verificar si el archivo DLL está presente en el sistema (carpeta system32) y usarlo entonces, por lo que no tiene varias versiones de un binario en la computadora de destino.

10

Simplemente agregue su DLL al proyecto dentro de Visual Studio.

  • proyecto de clic derecho en la Solución Visor
  • Seleccione Añadir - elemento existente
  • Examinar para el archivo DLL y haga clic en Agregar o la pequeña flecha al lado del botón Add y Agregar Enlace
  • Seleccionar DLL en el Visor Solución
  • Haga clic en él y seleccione Propiedades
  • Establecer Acción de generación a contenido
  • Conjunto Copiar al Directorio de salida a Copiar si es más nuevo

Ahora su archivo automáticamente se copia en la carpeta de depuración o escape.

Para la implementación puede agregar un proyecto de instalación a su solución. Cuando agrega el resultado de su primer proyecto al proyecto de instalación, el archivo DLL se agregará automáticamente a la configuración.

Pero un proyecto de instalación es un área completamente nueva. Así que comienza a trabajar con eso y haz una nueva pregunta si te quedas atascado.

+1

Esto funcionará para los archivos DLL. Sin embargo, no para, p. Los archivos XML están predeterminados, ya que estarán marcados como "Archivo de datos" (columna "Estado de publicación") y como consecuencia no se copiarán en el directorio de instalación de la aplicación ClickOnce durante la instalación (consulte * [A.deploy file no está implementando un archivo XML] (http://stackoverflow.com/questions/2344083/) *). La solución es cambiar "Archivo de datos" a "Incluir". –

2

Puede simplemente incluir el dll en su proyecto y desplegarlo todo con ClickOnce. Agréguelo a su solución, establezca la acción de compilación en 'contenido'. Establezca 'copiar en el directorio de salida' a 'copiar siempre'. Cuando publique, debería poder ver el archivo en la carpeta de publicación. También puede consultar el cuadro de diálogo Archivos de la aplicación (en la pestaña de publicación de las propiedades del proyecto) para asegurarse de que se incluirá.

Cuestiones relacionadas