2010-01-30 5 views
17

Я хотел бы сделать x86 и x64 версию моего приложения, потому что некоторые из библиотек, которые я использую, имеют отличия для x86 и x64 (например, SQLite). Я создал новую конфигурацию для релизов, которая имеет целевую операционную систему «x64».Visual Studio: разные библиотеки DLL для конфигураций

Есть ли способ определить различные библиотеки DLL для конфигурации, например. используйте SQLite.dll для выпуска x86 и SQLite64.dll для выпуска x64?

  1. К сожалению, я не могу использовать опцию «любая платформа», которая по умолчанию используется из-за несовместимых с x64 DLL.
  2. Я хочу поддерживать реальный x64 и не запускать 32-разрядное приложение на ОС x64.
+0

Это хороший вопрос, у меня аналогичная проблема с одной 3-й партией .dll, который мы используем, что есть конкретная 32 и 64-битная версия, так в то время как его не проблема для большинства моих код, как это управляется, и нацелен на CLR - получение правильной версии DLL для определенных целей является проблемой, которую я еще не разрешил. – Murph

ответ

11

Вы можете добавить условия в ссылки dll в файле проекта, но вы не можете сделать это с помощью Visual Studio - вам придется вручную редактировать файлы проекта. См. this, как это сделать.

Что вам нужно сделать, так это включить ссылку на 32-разрядную dll только в 32-битной конфигурации сборки и ссылку на 64-разрядную dll в конфигурации 64-битной сборки.

+0

Вышеописанное верно. Вы можете вручную отредактировать файл проекта и добавить атрибуты Condition. –

+0

Ничего себе, даже не знал, что я искал ответа на этот вопрос, но это камни. Правильно ли я подумал бы, что в этом случае условие должно быть на $ (Platform), поскольку оно не зависит от debug/release? –

+0

@Peter: Да, вам нужно добавить что-то вроде 'Condition = '$ (Platform) ==' x64 '" 'к соответствующему узлу в файле проекта. – adrianbanks

0

Какая версия VS? На каком языке вы развиваетесь? Если native (= не управляется) C++, практически все настройки, включая используемые библиотеки, могут быть установлены по-разному для каждой конфигурации. В верхней части диалогового окна свойств проекта выберите параметры конфигурации, которые вы хотите изменить.

+0

vs 2008, C# .net 3.5 – Kai

1

Вам необходимо условие для ссылки dll в файле проекта.
Это приведет к тому, что визуальная студия будет проверять состояние и ссылку всякий раз, когда вы меняете активную конфигурацию.
Просто добавьте условие для каждой конфигурации.

Пример:

<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> 
Смежные вопросы