You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio中获取活动解决方案平台用于项目引用?

解决AnyCPU项目根据活动解决方案平台引用不同资源项目的问题

方案1:直接使用$(SolutionPlatform)变量

VS在构建时会自动传递$(SolutionPlatform)属性,它的值就是当前选中的活动解决方案平台(比如x86、x64),和项目自身的Platform设置无关。你可以直接把原代码里的$(Platform)替换成这个变量:

<ItemGroup Condition="'$(SolutionPlatform)'=='x86'">
    <ProjectReference Include="..\Resources.x86\Resources.x86.csproj" />
</ItemGroup>

<ItemGroup Condition="'$(SolutionPlatform)'=='x64'">
    <ProjectReference Include="..\Resources.x64\Resources.x64.csproj" />
</ItemGroup>

如果用命令行构建,手动传递参数即可:msbuild /p:SolutionPlatform=x64。

方案2:在配置管理器中添加自定义属性

如果$(SolutionPlatform)在你的VS版本中不生效,可以给项目配置绑定自定义属性:

  • 打开配置管理器,选中目标项目,点击「配置」列的下拉框,选择「<编辑...>」
  • 针对每个解决方案平台(x86/x64)对应的项目配置(比如Debug/Release),添加自定义属性:x86对应ResourcePlatform=x86,x64对应ResourcePlatform=x64
  • 然后在.csproj中用这个自定义变量判断:
<ItemGroup Condition="'$(ResourcePlatform)'=='x86'">
    <ProjectReference Include="..\Resources.x86\Resources.x86.csproj" />
</ItemGroup>

<ItemGroup Condition="'$(ResourcePlatform)'=='x64'">
    <ProjectReference Include="..\Resources.x64\Resources.x64.csproj" />
</ItemGroup>

方案3:用解决方案级Props文件统一管理

如果多个项目都需要这个逻辑,可以在解决方案根目录创建Directory.Build.props文件,统一配置引用规则:

<Project>
    <PropertyGroup>
        <!-- 根据解决方案平台设置资源项目路径 -->
        <ResourceProjectPath Condition="'$(SolutionPlatform)'=='x86'">..\Resources.x86\Resources.x86.csproj</ResourceProjectPath>
        <ResourceProjectPath Condition="'$(SolutionPlatform)'=='x64'">..\Resources.x64\Resources.x64.csproj</ResourceProjectPath>
    </PropertyGroup>
    <ItemGroup>
        <ProjectReference Include="$(ResourceProjectPath)" />
    </ItemGroup>
</Project>

所有项目会自动继承这个文件的配置,不用逐个修改.csproj。

内容的提问来源于stack exchange,提问作者el_zilcho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:08:33