长沙知名网站推广,如何弄一个自己的小程序,备案空壳网站通知,平面设计创意作品欣赏缘起 在上一篇文章——《修复被破坏的 vs 工程设置》中#xff0c;我分享了修复被破坏的 vs 工程设置的实战。本以为圆满解决了问题#xff0c;没想到另有玄机。所以又来分享一篇刨根问底的文章。查看文件 打开 Microsoft.Cpp.Win32.user.props 一看#xff0c;里面并没有任… 缘起 在上一篇文章——《修复被破坏的 vs 工程设置》中我分享了修复被破坏的 vs 工程设置的实战。本以为圆满解决了问题没想到另有玄机。所以又来分享一篇刨根问底的文章。查看文件 打开 Microsoft.Cpp.Win32.user.props 一看里面并没有任何有用的内容如下图看来默认的 包含目录 和 库目录 的值不是从这里来的虽然可以在这里添加自定义的值。对比看一下 vs 工程设置中的 包含目录 和 库目录 的值如下图显然包含目录 和 库目录 的值不为空。接下来的任务是调查到这两个值是从哪里来的只看包含目录的值就可以了库目录的值可以用类似的方法查。应该根据什么线索来调查呢还是搜索 包含目录的值应该保存在某个地方配置文件或者注册表不能凭空出来这么一个东东。还是优先在本地硬盘搜索继续使用 File Locator搜索 WindowsSDK_IncludePath。有很多条记录。因为我使用的是 vs2013对应的版本是 v120从搜索结果中的文件路径可以猜测ARM 是编译 ARM 平台程序用的Win32 是编译 32 位程序用的x64 是编译 64 位程序用的。所以我严重怀疑上图中高亮的这条记录。修改这个文件的内容需要管理员权限如下图在 vs 中验证一下打开之前的工程查看对应的工程属性如下图果然已经变成了修改后的值说明猜对了至此我们已经知道包含目录的值是从 Toolset.props 中获取的是由 $(VC_IncludePath) 和 $(WindowsSDK_IncludePath) 组成的那这两个宏的值是从哪里来的呢我以追查 WindowsSDK_IncludePath 的值为例展开。WindowsSDK_IncludePath 继续使用 File Locator 继续搜索搜索结果如下图看了一圈只有 C:\Program Files (x86)\Windows Kits\8.1\DesignTime\CommonConfiguration\Neutral\Windows.props 文件比较可能是定义 WindowsSDK_IncludePath 的地方。其它几个文件都是在使用。修改 Windows.props 中的 WindowsSDK_IncludePath 为空需要管理员权限如下图再次使用 vs 打开工程文件查看包含路径的值果然是我们修改后的值。More 如果你足够细心会发现在确定 IncludePath 的值的时候只有当 IncludePath 是空的时候才会使用配置文件中对应的值。我把 Toolset.props 中的关键语句粘贴如下可以左右拖动查看IncludePath Condition$(IncludePath) $(VC_IncludePath);$(WindowsSDK_IncludePath);/IncludePath
Condition$(IncludePath) 表示当 $(IncludePath) 的值是空才取后面的值。如果 IncludePath 不为空就不会取后面的值了。IncludePath 可能会在哪里被赋值呢我们可以自己设置 IncludePath 的值吗答案是肯定的。如果有一个名为IncludePath 的环境变量结果会是什么样的呢请看下面的视频看来确实可以通过环境变量来设置 vs 中的宏。总结 .props 文件中可以设置一些预定义的值在 .vcxproj 文件中 import 对应的 .props 文件即可使用。我们可以通过环境变量的值设置 vs 中使用的宏的值。搜索文件内容请用 File Locator。参考资料 《Inside the Microsoft Build Engine —— Using MSBuild and Team Foundation Build》欢迎留言交流感谢你的分享点赞和在看