有没有办法在VS 2013上将平台工具集全局设置为v110?

时间:2015-01-19 19:29:47

标签: visual-studio visual-studio-2013 msbuild npm

我一直在仔细阅读关于堆栈溢出的类似问题,但无法找到这个问题的具体或确定的答案:

我目前正在使用MSVS 2013 Ultimate,并且还单独下载了MS build tools 2013。我正在尝试安装一些使用MSBuild的早期平台工具集进行编译的npm模块,并在按照MSDN关于如何Modify the Target Framework到另一个平台的说明后,这些也无法帮助我成功下载软件包。我目前的项目是处理javascript,我不会在不久的将来使用visual studio,因此我目前在更改其配置设置方面非常灵活。

我担心为了做到这一点,我不得不求助于下载VS 2012,除非有人找到明确的选择。

我目前正在Windows 8 Enterprise x64上运行所有内容。

提前感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用MsBuild的ImportBefore扩展点:将propertiesysheets添加到

$(VCTargetsPath)\Platforms\$(Platform)\ImportBefore

并向其添加属性,强制PlatformToolset,而不管vcproj文件中设置的是什么。使用VS2013,与VS2012相比,这样做有点困难(我使用v110_xp工具集在那里全局构建所有内容)但它仍然有效。

假设您使用的是64位计算机,并希望覆盖Win32平台的所有C ++项目的设置,请添加名为override_platformtoolset.props的属性表(名称并不重要,只要它以.props结尾)到目录C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ Platforms \ Win32 \ ImportBefore \ Default with this content:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PlatformToolSet>v110</PlatformToolSet>
    <DefaultPlatformToolset>v110</DefaultPlatformToolset>
  </PropertyGroup>
  <Target Name="ShowOverrideInfo1" BeforeTargets="Build">
    <Message Text="Overriding PlatformToolset!" Importance="high"/>
  </Target>
</Project>

然后使用此内容将名为override_platformtoolset的另一个文件添加到C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ Platforms \ Win32 \ ImportBefore:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PlatformToolSet>v110</PlatformToolSet>
    <ToolsetPropsFound>false</ToolsetPropsFound>
    <MinSupportedVCTargetsVersion>v110</MinSupportedVCTargetsVersion>
  </PropertyGroup>
  <Target Name="ShowOverrideInfo2" BeforeTargets="Build">
    <Message Text="Overriding PlatformToolset!" Importance="high"/>
  </Target>
</Project>

目标只是确保您将文件放在正确的位置:如果您现在构建,您应该看到 Overriding PlatformToolset!消息两次(并查看cl.exe和链接从C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin调用.exe。还有什么不对劲。

如果您想知道如何/为何如此工作检查C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120中的Microsoft.Cpp.Defaults.props和Microsoft.Cpp.props.props。< / p>