2010-01-30 13 views
17

Me gustaría hacer una versión x86 y x64 de mi aplicación porque algunas de las bibliotecas que estoy usando tienen diferencias para x86 y x64 (por ejemplo, SQLite). Hice una nueva configuración para las versiones de lanzamiento que tiene como objetivo el sistema operativo "x64".Visual Studio: DLL diferentes para configuraciones

¿Hay alguna manera de definir diferentes DLL para la configuración, p. utilizar SQLite.dll para la versión x86 y SQLite64.dll para la versión x64?

  1. Desafortunadamente, no puedo usar la opción "cualquier plataforma" que es la predeterminada porque no son compatibles con x64.
  2. Quiero admitir x64 real y no ejecutar una aplicación de 32 bits en un sistema operativo x64.
+0

Esta es una buena pregunta, tengo un problema similar con una .dll tercera parte que el uso que tiene la versión específica de 32 y 64 bits por lo que aunque no es un problema para la mayoría de mi código tal como se gestiona y se dirige a CLR: obtener la versión correcta de .dll para objetivos específicos es un problema que aún no he resuelto – Murph

Respuesta

11

Puede agregar condiciones a las referencias dll en el archivo de proyecto, pero no puede hacerlo utilizando Visual Studio; tendrá que editar manualmente los archivos del proyecto. Consulte this para saber cómo hacerlo.

Lo que debe hacer es incluir una referencia a la dll de 32 bits solo en la configuración de compilación de 32 bits y una referencia a la DLL de 64 bits en la configuración de compilación de 64 bits.

+0

Lo anterior es correcto. Puede editar manualmente el archivo de proyecto y agregar los atributos de Condición. –

+0

Wow, ni siquiera sabía que estaba buscando una respuesta a esta pregunta, pero eso es genial. ¿Tendría razón al pensar que en esta circunstancia, la condición debería estar en $ (Plataforma), ya que eso es independiente de depurar/liberar? –

+0

@ Peter: Sí, necesita agregar algo como 'Condition =" $ (Platform) == 'x64' "' al nodo relevante en el archivo del proyecto. – adrianbanks

0

¿Qué versión de VS? ¿En qué idioma estás desarrollando? Si C++ nativo (= no administrado), prácticamente todas las configuraciones, incluidas las bibliotecas usadas, se pueden configurar de manera diferente para cada configuración. En la parte superior del diálogo de propiedades del proyecto, simplemente elija la configuración de la configuración que le gustaría modificar.

+0

vs 2008, C# .net 3.5 – Kai

1

Necesita una condición para la referencia dll en el archivo del proyecto.
Esto hará que visual studio vuelva a verificar la condición y la referencia siempre que cambie la configuración activa.
Simplemente agregue una condición para cada configuración.

Ejemplo:

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> 
    <Reference Include="DLLName"> 
     <HintPath>..\DLLName.dll</HintPath> 
    </Reference> 
    <ProjectReference Include="..\MyOtherProject.vcxproj"> 
     <Project>{AAAAAA-000000-BBBB-CCCC-TTTTTTTTTT}</Project> 
     <Name>MyOtherProject</Name> 
    </ProjectReference> 
    </ItemGroup> 
Cuestiones relacionadas