VS2010和VS2012在Microsoft.Cpp.Win32.user中设置VC++目录冲突的解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TXH0001/article/details/51499931
    请尊重原创,转载请注明原文地址

    网上常见的置VC目录的方法,例如http://blog.chinaunix.net/uid-21375345-id-2953297.html所提的,如果只用VS2010没有问题,但是在arx开发下,需要用到多个版本的VS就会有问题,因为这个方法修改的是“C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.prop”等文件,这些文件在VS2010和VS2012间是共享的,如果在VS2010中VC目录指向arx2013库路径,则在VS2012中的VC目录也是指向arx2013库路径,如果修改其指向arx2015库路径,否则VS2010的arx就编译失败了,

    相关问题参照:https://social.msdn.microsoft.com/Forums/en-US/4a63bf74-23d1-4f85-aee9-c83cc0f99dad/microsoftcppwin32user-property-sheet-file-shared-by-both-vs2010-and-vs2012?forum=msbuild

解决方法也参照上面文章的最后,通过判断VS的版本决定包含的路径,以“Microsoft.Cpp.Win32.user.prop为例,内容如下
<?xml version="1.0" encoding="utf-8"?>
<!--PlatformToolsetVersion环境变量表示VS的版本-->
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludePath Condition="$(PlatformToolsetVersion)=='100'">%arx2013_win32_inc%;$(IncludePath)</IncludePath>
    <IncludePath Condition="$(PlatformToolsetVersion)=='110'">%arx2015_win32_inc%;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup>
    <ReferencePath  Condition="$(PlatformToolsetVersion)=='100'">%arx2013_win32_inc%;$(ReferencePath)</ReferencePath> 
    <ReferencePath  Condition="$(PlatformToolsetVersion)=='110'">%arx2015_win32_inc%;$(ReferencePath)</ReferencePath>
  </PropertyGroup>
  <PropertyGroup>  
    <LibraryPath   Condition="$(PlatformToolsetVersion)=='100'">%arx2013_win32_lib%;$(LibraryPath)</LibraryPath>
    <LibraryPath   Condition="$(PlatformToolsetVersion)=='110'">%arx2015_win32_lib%;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
</Project>

这样,打开不同的VS时可以发现路径都指向不同的arx路径,目的达到



展开阅读全文

没有更多推荐了,返回首页