TFS2015中MSBuild如何设置x64与x32双输出路径?
解决TFS2015一次构建生成x64/x32双输出路径的方案
嘿,我来帮你搞定这个问题——之前用MixedPlatform或者Any CPU没成功很正常,这俩配置本身没法直接帮你拆分输出路径,得从项目配置和构建定义两方面调整,下面是具体操作步骤:
1. 先确认项目的平台配置是否齐全
首先得保证你的Visual Studio项目(.csproj/.vbproj等)里已经正确定义了x64和x32(也就是x86)的平台:
- 打开项目属性→生成→平台下拉框,确认有
x64和x86选项 - 如果没有,点击
<新建...>,选择复制自Any CPU,创建这两个平台的配置
2. 修改TFS构建定义的平台参数
在你的TFS2015构建定义里,找到Process(或构建选项卡)页面:
- 找到「平台(Platform)」设置,不要选
Mixed Platforms或Any CPU,直接输入多个平台,格式为:x86|x64 - 这样构建过程会分别针对x86和x64平台执行编译流程
3. 配置输出路径映射
接下来要让每个平台的输出对应到你想要的路径,有两种常用方法:
方法一:通过MSBuild参数统一指定
在构建定义的「MSBuild参数」(或高级选项里的MSBuild Arguments)中,添加以下参数:
/p:OutputPath=$(Build.BinariesDirectory)\Release\$(Platform)\
这里的$(Platform)会自动替换为当前构建的平台(x86或x64),最终输出路径就会是你示例里的../Release/x64/和../Release/x32/(x86对应x32)
方法二:直接修改项目文件固定路径(可选)
如果不想在构建定义里设置,也可以直接编辑项目文件:
- 右键项目→卸载项目→编辑项目文件
- 找到每个平台对应的
<PropertyGroup>节点,添加或修改<OutputPath>:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>..\Release\x32\</OutputPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> <OutputPath>..\Release\x64\</OutputPath> </PropertyGroup>
保存后重新加载项目,本地编译时就会自动输出到对应路径,TFS构建也会沿用这个设置
4. 验证构建结果
保存构建定义后触发一次构建,在构建结果的「工件(Artifacts)」页面查看输出目录,应该能看到Release/x64和Release/x32两个文件夹,分别对应各自平台的编译产物
常见问题排查
- 如果只有一个平台的输出:检查构建定义里的平台是否正确设置为
x86|x64,别写错拼写 - 如果路径不生效:确认MSBuild参数里的变量是否正确,或者项目文件里的Condition条件和当前配置是否匹配
- 如果编译报错:先在Visual Studio里单独编译x86和x64平台,确保本地能成功再到TFS上构建
内容的提问来源于stack exchange,提问作者pollpbl
相关产品推荐
相关产品推荐

