2010-01-30 16 views
17

Mi piacerebbe creare una versione x86 e x64 della mia applicazione perché alcune delle librerie che sto usando hanno differenze per x86 e x64 (ad esempio SQLite). Ho creato una nuova configurazione per build di versioni che hanno come sistema operativo di destinazione "x64".Visual Studio: DLL diverse per configurazioni

C'è un modo per definire DLL diverse per la configurazione, ad es. utilizzare SQLite.dll per la versione x86 e SQLite64.dll per la versione x64?

  1. Purtroppo non riesco a utilizzare l'opzione "nessuna piattaforma" che è l'impostazione predefinita a causa di quelle non compatibili con x64 DLL.
  2. Voglio supportare x64 reale e non eseguire un'applicazione a 32 bit su un sistema operativo x64.
+0

Questa è una buona domanda, ho un problema simile con un terzo dll partito che usiamo che ha specifica versione a 32 e 64 bit così mentre il suo non è un problema per la maggior parte della mia codice come quello è gestito e si rivolge al CLR - ottenere la versione corretta del dll per obiettivi specifici è un problema che non ho ancora risolto – Murph

risposta

11

È possibile aggiungere condizioni ai riferimenti DLL nel file di progetto, ma non è possibile farlo utilizzando Visual Studio - si avrà a portata di mano-editare i file di progetto. Vedi this per come farlo.

È necessario includere un riferimento alla dll a 32 bit solo nella configurazione di build a 32 bit e un riferimento alla dll a 64 bit nella configurazione di build a 64 bit.

+0

Quanto sopra è corretto. È possibile modificare manualmente il file di progetto e aggiungere gli attributi Condition. –

+0

Wow, non sapevo nemmeno che stavo cercando una risposta a questa domanda, ma che rocce. Sarei corretto nel pensare che in questa circostanza, la condizione dovrebbe essere su $ (Piattaforma), dal momento che è indipendente dal debug/release? –

+0

@Peter: Sì, è necessario aggiungere qualcosa come 'Condition =" $ (Platform) == 'x64' "' al nodo pertinente nel file di progetto. – adrianbanks

0

Quale versione VS? In quale lingua stai sviluppando? Se C++ nativo (= non gestito), praticamente tutte le impostazioni, incluse le librerie usate, possono essere impostate in modo diverso per ogni configurazione. Nella parte superiore della finestra di dialogo delle proprietà del progetto, è sufficiente scegliere le impostazioni della configurazione che si desidera modificare.

+0

vs 2008, C# .net 3.5 – Kai

1

È necessaria una condizione per il riferimento dll nel file di progetto.
Ciò farà in modo che visual studio ricontrollare la condizione e il riferimento ogni volta che si modifica la configurazione attiva.
Basta aggiungere una condizione per ogni configurazione.

Esempio:

<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> 
Problemi correlati