基于项目配置在 C++/CLI 包装器中引用 x86 和 x64 DLL?

Referencing x86 and x64 DLL in C++/CLI wrapper based on project configuration?

我还有一个悬而未决的问题,我不确定答案。

当我按照教程为我的 DLL 创建 C++/CLI 包装器时,我不得不将对该 DLL 的引用添加到项目中:

没问题,就这样。但事情是这样的,参考路径是:

D:\My Programs17\MSAToolsLibrary\MSAToolsLibrary\bin\x86\Release\MSAToolsLibrary.dll

我实际上有两个 DLL 文件。一种用于 x86,另一种用于 x64。我可以设置包装器项目文件,使其根据构建配置分别引用 x64 文件和 x86 文件吗?

更新

这是我的 VCXPROJ 文件:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 [snip]
  <ItemGroup>
    <Reference Include="MSAToolsLibrary">
      <HintPath>..\..\MSAToolsLibrary\MSAToolsLibrary\bin\x86\Release\MSAToolsLibrary.dll</HintPath>
    </Reference>
 [snip]
</Project>

我可以看到对 DLL 的引用,但看不到分别针对 x64 和 x86 的特定引用。

更新 2

好的,我将包装器项目添加到我的实际解决方案中。 x64 构建正常:

但是当我将配置设置为 x86 时,我遇到了一些问题。引用上有一个小三角,属性上有错误:

正如您将从我对现有答案的评论中看到的那样,我在提示中使用了 $(PlatformTarget)。但似乎还有其他地方我们需要调整我无法解决的参考。

更新 3

好的,如果我在 Visual Studio 中自行打开项目,那么我可以很好地切换平台。但是当这个项目是我更大项目的一部分时,它就不喜欢了。那就是它失败的时候。

更新 4

有趣的是,如果我在我的主项目中,并设置为 x86 平台,然后在这个添加的项目中我删除了对 DLL 的引用并再次添加它(x86 风格):

我在本地解决没有这个问题。似乎我必须在本地解决方案中进行开发并在我的主项目解决方案之外进行编译。 :(

<HintPath>编辑为

  <HintPath>..\..\MSAToolsLibrary\MSAToolsLibrary\bin$(Platform)$(Configuration)\MSAToolsLibrary.dll</HintPath>