2

我有一些构建为 AnyCPU 的 csproj 文件,其中附带一些为特定架构构建的本机组件。这些文件需要放在同一个位置,所以我想根据当前选择的平台和配置来设置输出目录:

<PropertyGroup>
  <OutputPath>$(SolutionDir)\bin\$(Configuration)_$(Platform)\</OutputPath>
</PropertyGroup>

不幸的是,因为这是在 AnyCPU 项目中,所以它没有生成 $(SolutionDir)\bin\Release_x64\ 的输出目录,而是生成了 $(SolutionDir)\bin\Release_AnyCPU 的输出目录。

我想避免制作这个库的新的比特特定版本。我只希望构建将文件放置在正确的位置。

csproj 如何知道整个构建的平台是什么?

4

1 回答 1

3

$(Platform) 值与托管项目完全无关。它不会以任何方式影响项目的构建方式或运行方式。决定架构的是抖动,它发生在运行时,而不是构建时。

唯一有效的设置项目 + 属性、构建选项卡、平台目标。此设置的值不是由 $(Platform) 决定的。自 VS2010 以来,这引起了巨大的混乱。

您现在应该看到了解决方案,因为平台名称无关紧要,您可以简单地将其与您的 C++ 项目的平台名称相同。如有必要,将 x64 和 Win32 配置添加到托管项目。并删除AnyCPU 配置,因为您不再需要它。内置 + 配置管理器以确保所有项目使用相同的平台。问题解决了。

于 2013-06-28T00:14:01.487 回答