Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Msbuild 根据生成目标更改引用路径_Msbuild - Fatal编程技术网

Msbuild 根据生成目标更改引用路径

Msbuild 根据生成目标更改引用路径,msbuild,Msbuild,我有一个单元测试项目,它需要一些外部依赖项。这些依赖项有两种类型:i386(…..\External\EA\i386\Core.dll)和amd64(…..\External\EA\amd64\Core.dll) ..\..\..\..\External\EA\amd64\Core.dll ..\..\..\..\External\EA\amd64\Util.dll MsTest是32位,我希望这些程序集的路径是……。\External\EA**i386**\Core.dll。换句话说,如何

我有一个单元测试项目,它需要一些外部依赖项。这些依赖项有两种类型:i386(…..\External\EA\i386\Core.dll)和amd64(…..\External\EA\amd64\Core.dll)


..\..\..\..\External\EA\amd64\Core.dll
..\..\..\..\External\EA\amd64\Util.dll
MsTest是32位,我希望这些程序集的路径是……。\External\EA**i386**\Core.dll。换句话说,如何告诉msbuild选择正确的构建目标


谢谢

只需在引用上设置一个条件,或者如下所示,在包含它们的项目组上设置一个条件

<ItemGroup
   Condition="'$(Platform)' == 'x64'">
   <Reference Include="Core">
      <HintPath>..\..\..\..\External\EA\amd64\Core.dll</HintPath>
   </Reference>
   <Reference Include="Util">
      <HintPath>..\..\..\..\External\EA\amd64\Util.dll</HintPath>
   </Reference>
</ItemGroup>
<ItemGroup
   Condition="'$(Platform)' == 'Win32'">
   <Reference Include="Core">
      <HintPath>..\..\..\..\External\EA\i386\Core.dll</HintPath>
   </Reference>
   <Reference Include="Util">
      <HintPath>..\..\..\..\External\EA\i386\Util.dll</HintPath>
   </Reference>
</ItemGroup>

..\..\..\..\External\EA\amd64\Core.dll
..\..\..\..\External\EA\amd64\Util.dll
..\..\..\..\External\EA\i386\Core.dll
..\..\..\..\External\EA\i386\Util.dll
您必须准确地发现您的项目正在使用的$(平台)的哪些值,对项目的XML进行简单的检查就会显示这些值。

请看这里:
<ItemGroup
   Condition="'$(Platform)' == 'x64'">
   <Reference Include="Core">
      <HintPath>..\..\..\..\External\EA\amd64\Core.dll</HintPath>
   </Reference>
   <Reference Include="Util">
      <HintPath>..\..\..\..\External\EA\amd64\Util.dll</HintPath>
   </Reference>
</ItemGroup>
<ItemGroup
   Condition="'$(Platform)' == 'Win32'">
   <Reference Include="Core">
      <HintPath>..\..\..\..\External\EA\i386\Core.dll</HintPath>
   </Reference>
   <Reference Include="Util">
      <HintPath>..\..\..\..\External\EA\i386\Util.dll</HintPath>
   </Reference>
</ItemGroup>