请尊重原创,转载请注明原文地址
网上常见的置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路径,目的达到