繁体   English   中英

Visual Studio 加载正确的(x86 或 x64)dll

[英]Visual Studio loading the right (x86 or x64) dll

我正在 x86 中使用 Visual Studio。 我想为 x32 和 x64 构建我的应用程序。 但我需要使用 sqlite .net 连接器,它有一个用于 x86 应用程序的 dll 和另一个用于 x64 应用程序的 dll。

当我的配置为 x64 时如何配置我的 Visual Studio 以加载一个引用,而当我的配置为 x86 时如何加载另一个引用?

在您的项目文件中参考使用 MSBUILD 条件

<Reference 
       Include="SomeAssembly86, Version=0.85.5.452, Culture=neutral, PublicKeyToken=41b332442f1101cc, processorArchitecture=MSIL"  
         Condition=" '$(Platform)' == 'AnyCPU' ">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\Dependencies\SomeAssembly.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference 
         Include="SomeOtherAssembly, Version=0.85.5.999, Culture=neutral, PublicKeyToken=41b332442f1101cc, processorArchitecture=MSIL" 
         Condition=" '$(Platform)' == 'x64' ">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\Dependencies\SomeOtherAssembly.dll</HintPath>
      <Private>False</Private>
    </Reference>

这个比 Preet Sangha 稍微简单的答案在加载项目时不会生成警告,并且只有有条件接受的 dll 会出现在解决方案资源管理器中。 所以,总的来说,外观更干净,虽然更微妙。 (这是在 Visual Studio 2010 中测试过的。)

<Reference Include="p4dn" Condition="$(Platform) == 'x86'">
  <HintPath>..\..\ThirdParty\P4.Net\clr4\x86\p4dn.dll</HintPath>
</Reference>
<Reference Include="p4dn" Condition="$(Platform) == 'x64'">
  <HintPath>..\..\ThirdParty\P4.Net\clr4\x64\p4dn.dll</HintPath>
</Reference>

您还可以为“任何 CPU”构建应用程序并动态选择要加载的 DLL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM