2011-05-30 22 views
6

Tengo una aplicación WPF con un solo clic que hace uso de una DLL no administrada.¿Cómo puedo implementar una DLL no administrada con una aplicación WPF de hacer clic una vez?

Al depurar localmente, acabo de copiar el dll en la carpeta de depuración/bin.

¿Cómo puedo incluir el dll en el proyecto (VS2010) para que esté desplegado y accesible para la aplicación?

He intentado agregarlo como un recurso y configurar "Contenido" y "Copiar siempre", y el archivo parece estar presente en los archivos de configuración/implementación, sin embargo, la aplicación no puede verlo.

Si sirve de ayuda, este es un ejemplo del código que uso para acceder a los métodos en la DLL no administrada.

[DllImport("ODBC_VER_DETECT.dll")] 
extern private static long GetCompanyFileVersion([MarshalAs(UnmanagedType.LPStr)] String sDataBase, 
               [MarshalAs(UnmanagedType.LPStr)] StringBuilder sVersion); 
+0

¿No puede simplemente agregar la DLL como un archivo de contenido? –

+0

Sí, lo intenté (ver edición) – dan

+0

Mis disculpas: en lugar de pasar por todo el rol de "Agregar recursos", solo necesitaba "Agregar un elemento existente" en la carpeta raíz del proyecto y luego configurar "Contenido" y " Copia siempre ". Gracias Steve B. – dan

Respuesta

8

En vez de ir a través de todo el galimatías "Agregar recurso" - Sólo necesitaba "Agregar elemento existente" en la carpeta raíz del proyecto y ajuste "contenido" y "Copiar siempre".

+7

¿Hay alguna otra solución un poco más elegante? –

+0

Nota: Si los elementos de contenido están en el proyecto A, pero el proyecto B (dependiente de A) es el que está publicando, entonces los archivos de contenido no se incluirán. El Proyecto B * * no verá los elementos de contenido de A, por lo que no podrá agregarlos como archivos de aplicación publicados. – kdbanman

Cuestiones relacionadas