VS2010和VS2012在Microsoft.Cpp.Win32.user中设置VC++目录冲突的解决
2016-05-25 17:12
429 查看
请尊重原创,转载请注明原文地址
网上常见的置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路径,目的达到
网上常见的置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路径,目的达到
相关文章推荐
- 谈谈数组和指针组合时,表示什么样的变量
- 环形队列的C++实现
- C++回调函数简析
- 设计模式之工厂方法模式(C++实现)
- C++:数据的共享与保护
- c语言进阶之路----关于函数指针的个人心得
- 资深C++程序员学习C#要点
- 资深C++程序员学习C#要点
- 在指定文本文件中删除指定字符串C语言
- C++ 通过RegEnumKeyEx枚举的问题
- C++将类的成员函数作为回调函数
- VC++常见错误原因解析--error LNK2019: 无法解析的外部符号 "public: void __thiscall
- 打印内存的c语言实现
- LeetCode 64 Minimum Path Sum--In C++
- 注释风格转换(从C语言注释风格转换到C++注释风格)
- c++作业6
- LeetCode 345: Reverse Vowels of a String
- 杨辉三角
- C++三道笔试题
- C++面向对象实验(六)(完结)