Visual Studio:用于配置的不同DLL

时间:2010-01-30 21:40:06

标签: visual-studio dll x86 64-bit

我想制作我的应用程序的x86和x64版本,因为我使用的一些库在x86和x64(例如SQLite)方面存在差异。 我为发布版本做了一个新的配置,它具有目标操作系统“x64”。

有没有办法为配置定义不同的DLL,例如使用SQLite.dll进行x86发布,使用SQLite64.dll进行x64发布吗?

  1. 不幸的是我不能使用默认的“任何平台”选项,因为那些不是x64兼容的DLL。
  2. 我想支持真正的x64,而不是在x64操作系统上运行32位应用程序。

4 个答案:

答案 0 :(得分:12)

您可以在项目文件中为dll引用添加条件,但不能使用Visual Studio执行此操作 - 您必须手动编辑项目文件。有关如何操作,请参阅this

您需要做的是仅在32位构建配置中包含对32位dll的引用,并在64位构建配置中引用对64位dll的引用。

答案 1 :(得分:1)

项目文件中的dll引用需要一个条件。
这将导致visual studio在您更改活动配置时重新检查条件和引用 只需为每个配置添加一个条件。

示例:

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

答案 2 :(得分:0)

哪个VS版本?你在开发哪种语言? 如果是原生(=非托管)C ++,几乎所有设置(包括使用的库)都可以针对每个配置进行不同的设置。在项目属性对话框的顶部,只需选择要修改的配置设置。

答案 3 :(得分:0)

它存在csproj文件的内置关键字devices/<myDeviceId>/messages/devicebound/#Choose

以下示例:

When

Bref说明:在Visual Studio中选择“ DebugConversion”时,项目将在解决方案中加载项目名称OfficeConverter,否则(默认情况下为“ Debug” /“ Release”)将还原并加载Nuget Dll。